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双向链表实现实例代码
Nov 21 Python
Python httplib模块使用实例
Apr 11 Python
Python实现批量更换指定目录下文件扩展名的方法
Sep 19 Python
Python编写合并字典并实现敏感目录的小脚本
Feb 26 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 Python
python的range和linspace使用详解
Nov 27 Python
python numpy 反转 reverse示例
Dec 04 Python
Keras:Unet网络实现多类语义分割方式
Jun 11 Python
Python命名空间及作用域原理实例解析
Aug 12 Python
python使用隐式循环快速求和的实现示例
Sep 11 Python
如何解决python多种版本冲突问题
Oct 13 Python
简述python四种分词工具,盘点哪个更好用?
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
php cookie的操作实现代码(登录)
2010/12/29 PHP
PHP面向对象——访问修饰符介绍
2012/11/08 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
python远程登录代码
2008/04/29 Python
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
在Python中使用正则表达式的方法
2015/08/13 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
如何将json数据转换为python数据
2020/09/04 Python
Python模块常用四种安装方式
2020/10/20 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
销售代表求职自荐信
2013/10/01 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
司机岗位职责说明书
2014/07/29 职场文书
项目战略合作意向书
2015/05/08 职场文书
电影红河谷观后感
2015/06/11 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python
Python中with上下文管理协议的作用及用法
2022/03/18 Python
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js