目录
1、sklearn决策树与id3决策树的区别
https://stackoverflow.com/questions/32277562/how-to-set-up-id3-algorith-in-scikit-learn
http://scikit-learn.org/stable/modules/tree.html#tree-algorithms-id3-c4-5-c5-0-and-cart
根据这两个链接可知,
其实sklearn的决策树仅仅是实现了cart树而已,
当信息计算方式为Gini,Entropy,就用来分类
注意,sklearn并没有实现ID3,但是cart中使用entropy的效果,等效于“二叉树的ID3”
因为ID3可以是“二叉决策树”,也可以是“多叉决策树”,所以sklearn使用决策树+entropy方式时,
无法实现“基于ID3算法的多叉决策树”
参考链接:sklearn没有实现id3算法
所以,我之前的迷惑是多余的。
2、一个简单的实例
from sklearn.feature_extraction import DictVectorizer
import csv
from sklearn import tree
from sklearn import preprocessing
import graphviz
import os
os.environ['PATH'] += os.pathsep +'C:\Program Files (x86)\Graphviz2.38\bin'
file='dataprofull.csv'
allData=open(file)
reader=csv.reader(allData)
next(reader)
headers=next(reader)
featureList=[]
labelList=[]
for row in reader:
labelList.append(row[-1])
ldict=[]
for i in range(0,len(row)-1):
ldict.append(float(row[i]))
featureList.append(ldict)
lb=preprocessing.LabelBinarizer()
dummyY&