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中的__slots__缓存资源以节省内存开销的方法
Apr 02 Python
使用paramiko远程执行命令、下发文件的实例
Oct 01 Python
python使用生成器实现可迭代对象
Mar 20 Python
python3+PyQt5实现文档打印功能
Apr 24 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
pycharm远程linux开发和调试代码的方法
Jul 17 Python
利用python GDAL库读写geotiff格式的遥感影像方法
Nov 29 Python
Pytorch实现LSTM和GRU示例
Jan 14 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
Feb 14 Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 Python
使用AJAX和Django获取数据的方法实例
Oct 25 Python
Python中tkinter的用户登录管理的实现
Apr 22 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
PHP中替换键名的简易方法示例详解
2014/01/07 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
node使用request请求的方法
2019/12/20 Javascript
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
对Python中for复合语句的使用示例讲解
2018/11/01 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
Python实现搜索算法的实例代码
2020/01/02 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
投资意向书
2014/07/30 职场文书
个人贷款收入证明
2014/10/26 职场文书
刑事附带民事代理词
2015/05/25 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang