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 相关文章推荐
django反向解析和正向解析的方式
Jun 05 Python
Python 绘制酷炫的三维图步骤详解
Jul 12 Python
django 中QuerySet特性功能详解
Jul 25 Python
python 画出使用分类器得到的决策边界
Aug 21 Python
python在不同条件下的输入与输出
Feb 13 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
Apr 03 Python
Pyecharts地图显示不完成问题解决方案
May 11 Python
python属于解释语言吗
Jun 11 Python
Python爬虫之爬取某文库文档数据
Apr 21 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 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字符过滤函数去除字符串最后一个逗号(rtrim)
2013/03/26 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
2013/04/26 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
PHP强制转化的形式整理
2020/05/22 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
jquery处理json对象
2014/11/03 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
Python中的类与对象之描述符详解
2015/03/27 Python
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
Python中查看文件名和文件路径
2017/03/31 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
深入理解Python异常处理的哲学
2019/02/01 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
校运会广播稿100字
2014/01/27 职场文书
实习指导教师评语
2014/12/30 职场文书
关于Vue Router的10条高级技巧总结
2021/05/06 Vue.js