export_graphviz 返回 NoneType

Posted

技术标签:

【中文标题】export_graphviz 返回 NoneType【英文标题】:export_graphviz return NoneType 【发布时间】:2017-05-05 13:54:58 【问题描述】:

我正在尝试可视化我的决策树。下面是我尝试过的代码

 from StringIO import StringIO
 from sklearn import tree
 out = StringIO()
 clf =DecisionTreeClassifier(X,y)
 out = tree.export_graphviz(clf, out_file=out)
 print out.getvalue()

下面是我遇到的错误

AttributeError                            Traceback (most recent call last)
<ipython-input-33-7b068216688f> in <module>()
  4 
  5 out = tree.export_graphviz(clf, out_file=out)
 ---->  6 print out.getvalue()

 AttributeError: 'NoneType' object has no attribute 'getvalue'

我该如何解决这个问题?

【问题讨论】:

看到这个:***.com/questions/27817994/… 【参考方案1】:

sklearn documentation 声明 export_graphviz 返回一个字符串,它确实这样做了

仅当out_fileNone

但是,您的代码存在更多问题。由于export_graphviz 返回一个字符串,一旦你将它分配给out,你就不再有StringIO 对象,而是一个str 对象。要将返回值保存到StringIO 对象,请不要提供out_file,并保存到out,如下所示:

print >>out, tree.export_graphviz(clf)

既然您写了from StringIO import StringIO,我假设您使用的是 Python 2.x。

【讨论】:

以上是关于export_graphviz 返回 NoneType的主要内容,如果未能解决你的问题,请参考以下文章

python 导出树,export_graphviz

了解 export_graphviz 的决策树输出

python"TypeError: 'NoneType' object is not iterable"错误解析

DecisionTreeClassifier&DecisionTreeClassRegression

使用 PyQt 从一个 QML 页面移动到另一个页面

如何阅读graphviz决策树?