我用sklearn构造了决策树模型后,可以有办法得到这个决策树的结构?也就是if-else的判断的规则。
Thx!
2个回答
用graphviz可以直接把树在jupyter notebook里显示出来
import graphviz
from sklearn import tree
model = tree.DecisionTreeRegressor(max_depth=2)
model.fit(X, y)
dot_data = tree.export_graphviz(model,
out_file=None,
feature_names=X.columns,
filled=True,
rounded=True,
special_characters=True)
graph = graphviz.Source(dot_data)
graph
每个框颜色深浅是什么意思?表示每个节点内均值的高低吗?
-
何立诚
2018-11-05 04:49
是的,表示均值,颜色越深,均值越大
-
sasa
2018-11-08 18:14
需要通过调用tree.export_graphviz这个方法。
以sklearn自带的数据集iris为例
from sklearn.datasets import load_iris
from sklearn import tree
clf = tree.DecisionTreeClassifier()
iris = load_iris()
clf = clf.fit(iris.data, iris.target)
tree.export_graphviz(clf, out_file='trees.txt')
输出的trees.txt文件里有保存了你的决策树的判断规则。
如果你想把这个规则画出来的话,可以借用这个网站http://webgraphviz.com/,把上面的txt文件里的内容,复制过去就行了,可以得到类似下面的图。
相关讨论
sklearn里的RandomForestClassifier怎么选样本的数量
lightgbm.LGBMModel和lightgbm.LGBMClassifier该用哪个?
sklearn里的RandomForestClassifier和ExtraTreesClassifier有什么区别吗?
sklearn DecisionTreeRegressor模型中为什么会有随机种子random_state?
随便看看