当前位置:   article > 正文

随机森林可视化

随机森林可视化

环境:Windows 10,Python 3.7

首先需要安装Graphviz,这里我们使用的是graphviz-2.38.msi,安装在D:\Program Files (x86)\Graphviz2.38。

代码:

import os
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.tree import export_graphviz

# 系统环境变量添加Graphviz安装路径,以便下面代码可以用dot命令
os.environ["PATH"] += os.pathsep + 'D:/Program Files (x86)/Graphviz2.38/bin'

iris = load_iris()
X, y = iris.data, iris.target
model = RandomForestClassifier(n_estimators=3, max_features=1)
model.fit(X, y)

# 循环打印每棵树
for idx, estimator in enumerate(model.estimators_):
    # 导出dot文件
    export_graphviz(estimator,
                    out_file='tree{}.dot'.format(idx),
                    feature_names=iris.feature_names,
                    class_names=iris.target_names,
                    rounded=True,
                    proportion=False,
                    precision=2,
                    filled=True)
    # 转换为png文件
    os.system('dot -Tpng tree{}.dot -o tree{}.png'.format(idx, idx))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

第一棵树:
在这里插入图片描述
第二棵树:
在这里插入图片描述

第三棵树:
在这里插入图片描述

树结果解释:
1、有多少种类别,整棵树就有多少种颜色,比如我们这里有setosa、versicolor、virginica三个类别,颜色对应是黄、绿、紫,Gini指数越小,该节点颜色越深。
2、value表示当前节点三种类别的样本有多少,比如下面第一棵树的根节点,value = [59,45,48],表示setosa有59个样本,versicolor有45个样本,virginica有48个样本。
3、class表示当前那个类别的样本最多,比如下面第一棵树的根节点,class = setosa,可以看到当前节点它的样本数是最多的。
4、为什么三棵树根节点每个类别的样本数不一样的?Iris数据集不是每个类别都是50个样本吗?-> 务必记得随机森林每棵树所用的数据集都是有放回抽样得到的!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/97659
推荐阅读
相关标签
  

闽ICP备14008679号