【发布时间】:2015-09-21 10:13:09
【问题描述】:
我正在尝试可视化我的决策树,但出现错误 代码是:
X = [i[1:] for i in dataset]#attribute
y = [i[0] for i in dataset]
clf = tree.DecisionTreeClassifier()
dot_data = StringIO()
tree.export_graphviz(clf.fit(train_X, train_y), out_file=dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("tree.pdf")
错误是
Traceback (most recent call last):
if data.startswith(codecs.BOM_UTF8):
TypeError: startswith first arg must be str or a tuple of str, not bytes
谁能解释一下是什么问题?非常感谢!
【问题讨论】:
-
您是否向我们展示了所有代码?我没有看到回溯指出的 if 语句。除此之外,显然startswith() 方法需要一个字符串作为输入“string”或一个字符串元组(“st”、“st2”、“st3”)。您将错误的数据类型传递给了startswith() 方法调用。要么您没有正确使用 codecs.BOM_UTF8,要么您必须将其转换为字符串 --> str(codecs.BOM_UTF8)
标签: python decision-tree pydot