决策树graphviz可视化报错can only concatenate str (not “numpy.float64”) to str
对iris数据集作的一个简单的决策树实例,但是在用graphviz可视化时报了“can only concatenate str (not “numpy.float64”) to str”的错误,之后成功解决,因为之前也出过一次bug,所以在此做个小小的总结。
修正前的代码:
from sklearn import tree
import graphviz
dot_data = tree.export_graphviz(model4, out_file = None,
feature_names = x_train.columns,
class_names = np.unique(y_train))
graph = graphviz.Source(dot_data)
graph.render("DecisionTree") #在同级目录下生成DecisionTree.pdf文件
注:model4为已经生成的tree.DecisionTreeClassifier模型,x_train为训练集,y_train为训练集对应的结果标签,为0.,1.和2.,代表的是iris数据集中样本对应的类别。
因为输出np.unique(y_train)的时候得到的是array([0., 1., 2.]),所以将代码修改为:
dot_data = tree.export_graphviz(model4, out_file = None,
feature_names = x_train.columns,