Python-决策树ID3实践
2016-10-11 23:17
239 查看
scikit-learn是Python一个机器学习的库,安装简单,不过需要提前装好numpy,Scipy和matplotlib等科学计算的包。
实践代码如下:
详细的sklearn库的API文档资料可以去官网查看。
实践代码如下:
from sklearn.feature_extraction import DictVectorizer #属性类型转化要用到的包 import csv #因为下面用于生成决策树的原始数据是csv电子表格的形式,故导入此包 from sklearn import tree #导入树相关的包 from sklearn import preprocessing#导入结果标记类型转化要用的包 from sklearn.externals.six import StringIO#IO相关的包 #以上是导入一些要用的sklearn库中的包 # Read in the csv file and put features into list of dict and list of class label allElectronicsData = open(r'D:/AllElectronics.csv', 'rb') reader = csv.reader(allElectronicsData) headers = reader.next() #heades是属性的列表 #print(headers) #这一段将csv文件中的数据读取到reader上 featureList = [] labelList = [] for row in reader: labelList.append(row[len(row)-1]) rowDict = {} for i in range(1, len(row)-1): rowDict[headers[i]] = row[i] featureList.append(rowDict) #创建两个列表,通过循环将所有样例的结果放入labelList,将每个样例所有属性数据以字典的形式放入featureList中 #print(featureList) # Vetorize features vec = DictVectorizer() dummyX = vec.fit_transform(featureList) .toarray() #print("dummyX: " + str(dummyX)) #print(vec.get_feature_names()) #print("labelList: " + str(labelList)) # vectorize class labels lb = preprocessing.LabelBinarizer() dummyY = lb.fit_transform(labelList) #print("dummyY: " + str(dummyY)) #以上两段分别用sklearn提供的包将样例各属性数据和结果数据,转化为生成决策树所需的dummy类型。也就是用0,1编码的类型。 # Using decision tree for classification # clf = tree.DecisionTreeClassifier() clf = tree.DecisionTreeClassifier(criterion='entropy') #决策树的定义,criterion = 'entropy'表明决策树用ID3算法 clf = clf.fit(dummyX, dummyY) #生成决策树 #print("clf: " + str(clf)) # Visualize model with open("allElectronicInformationGainOri.dot", 'w') as f: f = tree.export_graphviz(clf, feature_names=vec.get_feature_names(), out_file=f) #以上是构建决策树的过程最终生成一个dot文件,可以在网上下载一个Graphviz工具将dot文件转化为pdf或png等可视化的树形图。 #oneRowX = dummyX[0, :] #newRowX = oneRowX #newRowX[1] = 1 #newRowX[2] = 0 #predictx = clf.predict(newRowX) #print (str(newRowX)) #print("predictx:", str(predictx)) #这里是一个决策树的测试例子,用一条样例的各属性稍微改,调用predict函数预测,则通过各个属性的值直接预测出结果。
详细的sklearn库的API文档资料可以去官网查看。
相关文章推荐
- Python机器学习算法实践——决策树(ID3)
- 机器学习算法与Python实践(11) - 决策树 ID3、C4.5、CART
- 决策树ID3和C4.5算法Python实现源码
- Machine Learning In Action -- ID3决策树学习算法的python实现
- ID3决策树的Python代码实现
- 机器学习实战-决策树ID3-python代码
- 决策树ID3和C4.5算法Python实现源码
- 机器学习算法--决策树ID3--python实现
- 决策树ID3的Python实现
- 机器学习实战python3 决策树ID3
- 基于Python实现的ID3决策树功能示例
- 决策树ID3;C4.5详解和python实现与R语言实现比较
- 【机器学习实战-python3】决策树ID3
- 决策树ID3代码(Python)
- [置顶] 《统计学习方法》 决策树 ID3和C4.5 生成算法 Python实现
- 科学经得起实践检验-python3.6通过决策树实战精准准确预测今日大盘走势(含代码)
- id3决策树Python版
- 机器学习(周志华)习题解答4.3: Python小白详解ID3决策树的实现
- 分类算法-----决策树(ID3)算法原理和Python实现
- 决策树ID3 算法python实现