我试图得到一个决策树的正确显示;我离得很近,但我就是不能正确地显示班级。
当我使用class_names=True时,我得到以下结果:
请注意,图像被剪辑,但它沿着相同的线继续。
clf.fit(X, Y)
dot_data = tree.export_graphviz(clf, out_file=None, feature_names=combo.columns[2:], class_names=class_names)
graph = graphviz.Source(dot_data)
graph.render('r')
它产生这样的输出,我知道这是错误的,因为唯一出现5次的等级是a。
有什么问题?
https://datascience.stackexchange.com/questions/28574/decisiontreeclassifier-object-has-no-attribute-importances这是一个有趣的答案,有一些有用的提示,但根本没有回答我这里的问题。
我找到了这个解决方案:
clf = tree.DecisionTreeClassifier(max_depth=4)
clf.fit(X, Y)
dot_data = tree.export_graphviz(clf, out_file=None, feature_names=Xprep.columns, class_names=clf.classes_)
事实证明,在适合调用的结果上有一个稍微难以找到的属性:clf.classes_< /code>,其中包含类的文本再现。