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 10 Python
初步理解Python进程的信号通讯
Apr 09 Python
详解在Python中处理异常的教程
May 24 Python
python生成lmdb格式的文件实例
Nov 08 Python
利用python和百度地图API实现数据地图标注的方法
May 13 Python
Python编译为二进制so可执行文件实例
Dec 23 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
Mar 18 Python
python可迭代对象去重实例
May 15 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 Python
python -v 报错问题的解决方法
Sep 15 Python
Python matplotlib多个子图绘制整合
Apr 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
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
PHP中的类型约束介绍
2015/05/11 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
jquery插件制作教程 txtHover
2012/08/17 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
2014/06/20 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
python获取文件扩展名的方法
2015/07/06 Python
基于Django的python验证码(实例讲解)
2017/10/23 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
python绘制雪景图
2019/12/16 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
自考毕业生自我鉴定
2013/11/04 职场文书
人事主管岗位职责范本
2013/12/04 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
专业求职信撰写要诀
2014/02/18 职场文书
预备党员表决心书
2014/03/11 职场文书
公安学专业求职信
2014/07/27 职场文书
趣味运动会口号
2015/12/24 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
详解Python flask的前后端交互
2022/03/31 Python
Redis入门基础常用操作命令整理
2022/06/01 Redis