python利用sklearn包编写决策树源代码


Posted in Python onDecember 21, 2017

本文实例为大家分享了python编写决策树源代码,供大家参考,具体内容如下

因为最近实习的需要,所以用python里的sklearn包重新写了一次决策树。

工具:sklearn,将dot文件转化为pdf格式(是为了将形成的决策树可视化)graphviz-2.38,下载解压之后将其中的bin文件的目录添加进环境变量

源代码如下:

from sklearn.feature_extraction import DictVectorizer
import csv
from sklearn import tree
from sklearn import preprocessing
from sklearn.externals.six import StringIO
from xml.sax.handler import feature_external_ges
from numpy.distutils.fcompiler import dummy_fortran_file

# Read in the csv file and put features into list of dict and list of class label
allElectronicsData = 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)-1
for 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=>ID3
clf = tree.DecisionTreeClassifier(criterion='entropy')
clf = clf.fit(dummX, dummY)
print("clf:"+str(clf))


#可视化tree
with 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 = oneRowX
newRowX[0] = 1
newRowX[2] = 0

predictedY = clf.predict(newRowX)
print("predictedY: "+ str(predictedY))

这里的AllElectronics.csv,形式如下图所示:

python利用sklearn包编写决策树源代码

今天早上好不容易将jdk、eclipse以及pydev装进linux,但是,但是,但是,想装numpy的时候,总是报错,发现是没有gcc,然后又去装gcc,真是醉了,到现在gcc还是没有装成功,再想想方法

Python 相关文章推荐
进一步探究Python中的正则表达式
Apr 28 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
PyCharm代码格式调整方法
May 23 Python
TensorFlow打印tensor值的实现方法
Jul 27 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
python3.4 将16进制转成字符串的实例
Jun 12 Python
python的time模块和datetime模块实例解析
Nov 29 Python
Django设置Postgresql的操作
May 14 Python
在pycharm中debug 实时查看数据操作(交互式)
Jun 09 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
Jun 14 Python
公认8个效率最高的爬虫框架
Jul 28 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
python实现决策树分类算法
Dec 21 #Python
Python语言描述机器学习之Logistic回归算法
Dec 21 #Python
python Crypto模块的安装与使用方法
Dec 21 #Python
python编写Logistic逻辑回归
Dec 30 #Python
python+selenium识别验证码并登录的示例代码
Dec 21 #Python
python实现随机森林random forest的原理及方法
Dec 21 #Python
python编写分类决策树的代码
Dec 21 #Python
You might like
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
js输出列表实现代码
2010/09/12 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
动态加载JS文件的三种方法
2013/11/08 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
2020/12/19 Vue.js
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
2020/02/14 Python
python Matplotlib模块的使用
2020/09/16 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
师范毕业生求职自荐信
2013/09/25 职场文书
中职应届生会计求职信
2013/10/23 职场文书
保险专业求职信
2014/07/07 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
公路施工安全责任书
2015/05/08 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript