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 系统调用的实例详解
Jul 11 Python
Python开发的HTTP库requests详解
Aug 29 Python
django定期执行任务(实例讲解)
Nov 03 Python
使用Python的Django和layim实现即时通讯的方法
May 25 Python
解决安装python库时windows error5 报错的问题
Oct 21 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
Jan 04 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
Python面向对象程序设计之类的定义与继承简单示例
Mar 18 Python
python监控nginx端口和进程状态
Sep 06 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
Apr 08 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编写的导航条程序
2006/10/09 PHP
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
PHP中break及continue两个流程控制指令区别分析
2011/04/18 PHP
浅析php header 跳转
2013/06/17 PHP
解析argc argv在php中的应用
2013/06/24 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
jQuery的三种$()
2009/12/30 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
js判断空对象的实例(超简单)
2016/07/26 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
JS+HTML5 FileReader对象用法示例
2017/04/07 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
Python中的字典遍历备忘
2015/01/17 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
基于python操作ES实例详解
2019/11/16 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
意大利男装网店:Vrients
2019/05/02 全球购物
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
项目专员岗位职责
2013/12/04 职场文书
公司庆典活动邀请函
2014/01/09 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
离婚纠纷代理词
2015/05/23 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python