绝对新人,先给大佬们递茶~
这学期上一门人工智能的课,老师让下了python,给了一个画决策树的代码,可是我原模原样写下来后却报错,搞了好几天也不知道是什么原因。我的python是2.7的版本。求大佬们指点~
错误应该都是在第14行,有好几处画红波浪线的地方:
源代码在这:
# -*- coding=utf-8 -*-
from sklearn import tree
from sklearn.externals.six import StringIO
import pydot
import pandas as pd
from sklearn.feature_extraction import DictVectorizer
import numpy as np
D = pd.read_csv('xigua.csv',sep=',',header=0)
del D[D.columns[0]]
Y = D['label_haogua']
del D['lable_haogua']
dv_D = DictVectorizer(sparse=False)
df = D.convert_objects(convert_numberic=True)
D = dv D.fit transform(df.to dict(orient='records'))
x = np.array(list(D))
y = np.array(list(Y))
idx = range(len(y))
np.random.shuffle(idx)x = x[idx]
y = y[idx]
x_train=x[:-2]
y_train=y[:-2]
x_test=x[-2:]
y_test=y[-2:]
clf=tree.DecisionTreeClassifier(criterion='entropy')
clf=clf.fit(x_train,y_train)
dot_data=StringIO()
tree.export_graphviz(clf,out_file=dot_data,feature_names=dv_D.feature_names_)
graph=pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_png('xigua_tree.png')
pred_y = clf.predict(x_test)
print 'INPUT:'
print dv_D.feature_names_
print x_test
print 'XG-ROBOT\'S PREDICTION:',pred_y
print 'REAL LABELS:',y_test