赞
踩
from sklearn.model_selection import train_test_split, cross_val_score, KFold, GridSearchCV import pandas as pd import numpy as np from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score from sklearn.preprocessing import StandardScaler from sklearn.tree import export_graphviz path = "你自己的csv.csv" # 5分类的 data = pd.read_csv(path) # 打乱数据集 from sklearn import utils data = utils.shuffle(data) Y = data["score"].values X = data.drop("score", axis=1).values print(f"X=\n{X}") print(f"\nY=\n{Y}") # 数据标准化 scaler = StandardScaler() # 实例化 scaler.fit(X) # 训练标准化对象 X = scaler.transform(X) # 转换数据集 # 拆分训练集和测试集 train_X, test_X, train_Y, test_Y = train_test_split(X, Y, test_size=0.3, random_state=0) # 实例化分类器(默认生成100颗树,信息熵,叶子结点最少样本量为3,最大深度为15) clf = RandomForestClassifier(n_estimators=2, criterion="entropy", min_samples_leaf=3, max_depth=15) # 训练 clf.fit(train_X, train_Y) # 预测并评估 predict_Y = clf.predict(test_X) print(f"准确率acc = {accuracy_score(y_pred=predict_Y, y_true=test_Y)}")
需要一些准备和解释:
1、需要下载安装Graphviz,代码中还要指出安装的bin目录位置
参考(都要看):
https://blog.csdn.net/Candy_GL/article/details/79684947
和
https://blog.csdn.net/qq_40304090/article/details/88594813
2、注意绘制的森林并不是在一张图像上的,而是需要一棵树一棵树的绘制
## 绘制随机森林 # 加入Graphviz的环境路径 import os os.environ["PATH"] += os.pathsep + "G:/24_graphviz_msi/bin" # 提取随机森林中单个树 # estimator = clf.estimators_[5] # 提取第5颗树 # 遍历提取所有树,分别绘制 for i_tree in range(len(clf.estimators_)): # 绘图并导出 dot_data = export_graphviz(clf.estimators_[i_tree], out_file=None, feature_names=(list(data.drop("score", axis=1).columns))) # 第1个参数Decision_tree是dtc或clf都可以 import pydotplus graph = pydotplus.graph_from_dot_data(dot_data) graph.get_nodes()[7].set_fillcolor("#FFF2DD") if os.path.exists(f"{i_tree}_out.png"): pass else: graph.write_png(f"{i_tree}_out.png") # 当前文件夹生成out.png
3、还有一些其他的打印路径的方法,如sklearn官方提供的export_text,以及一些用户自己写的方法,请点击 另一篇文章 。
如果你使用export_text
遇到报错sklearn.tree export_textc error
,请直接更新scikit-learn
pip install scikit-learn --upgrade
参考:
《如何用Scikit-learn可视化随机森林中的一棵树》
《如何能将sklearn里随机森林分类树的结构给画出来?》
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。