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 命令行非阻塞输入的小例子
Sep 27 Python
跟老齐学Python之编写类之四再论继承
Oct 11 Python
在Django中创建第一个静态视图
Jul 15 Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 Python
Python字典的核心底层原理讲解
Jan 24 Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
NumPy统计函数的实现方法
Jan 21 Python
将自己的数据集制作成TFRecord格式教程
Feb 17 Python
什么是python类属性
Jun 10 Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 Python
想学画画?python满足你!
Dec 24 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(二)
2006/10/09 PHP
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
浅谈javascript 面向对象编程
2009/10/28 Javascript
javascript 日期常用的方法
2009/11/11 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
JS中双击和单击事件冲突的解决方法
2018/04/09 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
Python随机数random模块使用指南
2016/09/09 Python
python删除不需要的python文件方法
2018/04/24 Python
Python Django 页面上展示固定的页码数实现代码
2019/08/21 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
Python常用数据分析模块原理解析
2020/07/20 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
会计实习期自我鉴定
2013/10/06 职场文书
文案策划求职信
2014/03/18 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
银行求职信范文
2014/05/26 职场文书
爱护公共设施标语
2014/06/24 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏