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 代码性能优化技巧分享
Aug 07 Python
python自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
Python第三方库的安装方法总结
Jun 06 Python
Python探索之静态方法和类方法的区别详解
Oct 27 Python
对python使用http、https代理的实例讲解
May 07 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
Jun 01 Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 Python
Python实现多线程/多进程的TCP服务器
Sep 03 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
Python无损压缩图片的示例代码
Aug 06 Python
详解Python中的编码问题(encoding与decode、str与bytes)
Sep 30 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 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中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
php数组键名技巧小结
2015/02/17 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
javascript实现的listview效果
2007/04/28 Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
Python random模块的使用示例
2020/10/10 Python
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
我的网上商城创业计划书
2013/12/26 职场文书
敬老文明号事迹材料
2014/01/16 职场文书
校本研修个人总结
2015/02/28 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
nginx 多个location转发任意请求或访问静态资源文件的实现
2021/03/31 Servers
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers