python利用sklearn包编写决策树源代码
Python  /  管理员 发布于 7年前   186
本文实例为大家分享了python编写决策树源代码,供大家参考,具体内容如下
因为最近实习的需要,所以用python里的sklearn包重新写了一次决策树。
工具:sklearn,将dot文件转化为pdf格式(是为了将形成的决策树可视化)graphviz-2.38,下载解压之后将其中的bin文件的目录添加进环境变量
源代码如下:
from sklearn.feature_extraction import DictVectorizerimport csvfrom sklearn import treefrom sklearn import preprocessingfrom sklearn.externals.six import StringIOfrom xml.sax.handler import feature_external_gesfrom numpy.distutils.fcompiler import dummy_fortran_file# Read in the csv file and put features into list of dict and list of class labelallElectronicsData = open(r'E:/DeepLearning/resources/AllElectronics.csv', 'rt')reader = csv.reader(allElectronicsData)headers = next(reader)featureList = []lableList = []for row in reader:lableList.append(row[len(row)-1])rowDict = {}#不包括len(row)-1for i in range(1,len(row)-1):rowDict[headers[i]] = row[i]featureList.append(rowDict)print(featureList)vec = DictVectorizer()dummX = vec.fit_transform(featureList).toarray()print(str(dummX))lb = preprocessing.LabelBinarizer()dummY = lb.fit_transform(lableList)print(str(dummY))#entropy=>ID3clf = tree.DecisionTreeClassifier(criterion='entropy')clf = clf.fit(dummX, dummY)print("clf:"+str(clf))#可视化treewith open("resultTree.dot",'w')as f:f = tree.export_graphviz(clf, feature_names=vec.get_feature_names(),out_file = f)#对于新的数据怎样来查看它的分类oneRowX = dummX[0,:]print("oneRowX: "+str(oneRowX))newRowX = oneRowXnewRowX[0] = 1newRowX[2] = 0predictedY = clf.predict(newRowX)print("predictedY: "+ str(predictedY))
这里的AllElectronics.csv,形式如下图所示:
今天早上好不容易将jdk、eclipse以及pydev装进linux,但是,但是,但是,想装numpy的时候,总是报错,发现是没有gcc,然后又去装gcc,真是醉了,到现在gcc还是没有装成功,再想想方法
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号