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实现的文件同步服务器实例
Jun 02 Python
详解python3实现的web端json通信协议
Dec 29 Python
详解python调度框架APScheduler使用
Mar 28 Python
简单了解python PEP的一些知识
Jul 13 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 Python
TensorBoard 计算图的可视化实现
Feb 15 Python
python目标检测给图画框,bbox画到图上并保存案例
Mar 10 Python
Python多进程编程常用方法解析
Mar 26 Python
深入浅析Python代码规范性检测
Jul 31 Python
PyCharm Community安装与配置的详细教程
Nov 24 Python
如何使用Tkinter进行窗口的管理与设置
Jun 30 Python
Python中tqdm的使用和例子
Sep 23 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
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
php中in_array函数用法分析
2014/11/15 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
2015/05/12 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
JavaScript中Math对象的方法介绍
2017/01/05 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
python如何运行js语句
2020/09/09 Python
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
类、抽象类、接口的差异
2016/06/13 面试题
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
防汛通知
2015/04/25 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
初一数学教学反思
2016/02/17 职场文书
postgres之jsonb属性的使用操作
2021/06/23 PostgreSQL
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL