sklearn决策树应用及可视化
from sklearn import datasets from sklearn.tree import DecisionTreeClassifier
1.载入iris数据集(from sklearn import datasets)
x = iris.data[:,[0,2]] # x = iris.data[:, 0:2] y = iris.target
2.设置训练集中的数据和标签(x是特征集合,二维数组,y是标签值集合,一维数组)
clf = DecisionTreeClassifier(max_depth = 3)
clf.fit(x,y)
3.训练模型(DecisionTreeClassifier涉及到参数max_depth及其他,参考sklearn)
最后,是决策树的可视化,预备工作为:
scikit-learn中决策树的可视化一般需要安装graphviz。主要包括graphviz的安装和python的graphviz插件的安装。
第一步是安装graphviz。下载地址在:http://www.graphviz.org/。如果你是linux,可以用apt-get或者yum的方法安装。如果是windows,就在官网下载msi文件安装。无论是linux还是windows,装完后都要设置环境变量,将graphviz的bin目录加到PATH,比如我是windows,将C:/Program Files (x86)/Graphviz2.38/bin/加入了PATH
第二步是安装python插件graphviz: pip install graphviz
第三步是安装python插件pydotplus。这个没有什么好说的: pip install pydotplus
这样环境就搭好了,若仍然找不到graphviz,可以在代码里面加入这一行:
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
两种方法:
(1)生成pdf
import pydotplus dot_data = tree.export_graphviz(clf, out_file=None) graph = pydotplus.graph_from_dot_data(dot_data) graph.write_pdf("iris.pdf")
(2)直接在jupyter中显示
from IPython.display import Image from sklearn import tree import pydotplus import os os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/' dot_data = tree.export_graphviz(clf, out_file=None, feature_names=["sepal length","sepal width"], class_names=iris.target_names, filled=True, rounded=True, special_characters=True) graph = pydotplus.graph_from_dot_data(dot_data) Image(graph.create_png())