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实现将pvr格式转换成pvr.ccz的方法
Apr 28 Python
Python守护进程用法实例分析
Jun 04 Python
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 Python
PyQt5每天必学之布局管理
Apr 19 Python
pytorch + visdom CNN处理自建图片数据集的方法
Jun 04 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
Python变量类型知识点总结
Feb 18 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
详解Python 函数参数的拆解
Sep 02 Python
Python 解析xml文件的示例
Sep 29 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
python中数组和列表的简单实例
Mar 25 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 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
Js 获取、判断浏览器版本信息的简单方法
2016/08/08 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python通过解析网页实现看报程序的方法
2014/08/04 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
造价工程师个人求职信
2013/09/21 职场文书
干部对照检查材料范文
2014/08/26 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
党员自我评价范文2015
2015/03/03 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
javascript之Object.assign()的痛点分析
2022/03/03 Javascript
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL