#23 pythoh descison tree
from sklearn.feature_extraction import DictVectorizer
import csv
import pandas as pd
from sklearn import preprocessing
from sklearn import tree
from sklearn.externals.six import StringIO
data1=pd.read_csv('D://allelectronics.csv')
data1
data1.shape[0]
column_list=data1.columns.tolist()
column_list=column_list[0].split(';')
column_list
data2=data1.iloc[:,0].str.split(';',expand=True)
data2.columns=column_list
data2
featrue_list=[]
label_list=[]
label_list=data2['class:buys_computer']
label_list
len(data2)
t=0
while t<= len(data2):
rowdict={}
for i in range(1,len(data2.columns)-1):
print(i)
rowdict[data2.columns[i]]=data2.iloc[t,i]
featrue_list.append(rowdict)
t+=1
featrue_list
vec=DictVectorizer()
dummy_x=vec.fit_transform(featrue_list).toarray()
print('dummyx'+str(dummy_x))
print(vec.get_feature_names())
lb=preprocessing.LabelBinarizer()
dumm_y=lb.fit_transform(label_list)
dumm_y
clf=tree.DecisionTreeClassifier(criterion='entropy')
clf.fit(dummy_x,dumm_y)
clf
# from IPython.display import Image
# dot_data = tree.export_graphviz(clf, out_file=None,
# feature_names=featrue_list,
# class_names=label_list,
# )
# graph = pydotplus.graph_from_dot_data(dot_data)
# Image(graph.create_png())
with open('x1.dot','w') as f:
f=tree.export_graphviz(clf,feature_names=vec.get_feature_names(),out_file=f)
# import pydotplus
# graph=pydotplus.graph_from_dot_data(f)
# graph.write_pdf('1.pdf')
onerow=dummy_x[0,:]
onerow
print('onerowx'+str(onerow))
onerow[0]=1
onerow[1]=0
import numpy as np
onerow=np.array(onerow).reshape((1,-1))
PredictedY=clf.predict(onerow)
PredictedY
关注
回复 ele 获取源数据