简单的python决策树案例
机器学习入门——决策树的实例
写文章的目的是为了巩固所学,和方便回顾查找。如有讲错的地方,欢迎指出,谢谢。
我们的数据集 tree(1).csv 长这样:
RID | age | income | student | credit_rating | buy |
---|---|---|---|---|---|
1 | youth | high | no | fair | no |
2 | youth | high | no | excellent | no |
3 | middle_aged | high | no | fair | yes |
4 | senior | medium | no | fair | yes |
5 | senior | low | yes | fair | yes |
6 | senior | low | yes | excellent | no |
7 | middle_aged | low | yes | excellent | yes |
8 | youth | medium | no | fair | no |
9 | youth | low | yes | fair | yes |
10 | senior | medium | yes | fair | yes |
11 | youth | medium | yes | excellent | yes |
12 | middle_aged | medium | no | excellent | yes |
13 | middle_aged | high | yes | fair | yes |
14 | senior | medium | no | excellent | no |
#导入必要的库
from sklearn.feature_extraction import DictVectorizer
import csv
from sklearn import preprocessing
from sklearn import tree
#加载数据文件
load_file = open(r'tree(1).csv')
reader = csv.reader(load_file) #载入数据
headers = reader.__next__() #读取第一行
print(headers)
#试着打印结果,也可以作为指标加载数据是否成功
打印结果:
['RID', 'age', 'income', 'student', 'credit_rating', 'class_buys_computer']
观察我们的数据,发现数据中的特征,例如:age:youth ..等,导入无法识别,因此需要对特征进行抽取,用到了DictVectorizer
DictVectorizer 使用可以参考这篇文章
说明: DictVectorizer的处理对象是符号化(非数字化)的但是具有一定结构的特征数据,如字典等,将符号转成数字0/1表示。
lables = [] #用于存储标记实例,也就是本例中的是否购入电脑
feature = [] #用于存储特征#reader返回的值是csv文件中每行的列表,将每行读取的值作为列表返回
for row in reader:lables.append(row[len(row)-1])features = {}for each in range(1,len(row)-1):features[headers[each]] = row[each]feature.append(features)vec = DictVectorizer()
x = vec.fit_transform(feature).toarray()
print('特征提取后的X'+'\n'+str(x))
# print(headers)
lab = preprocessing.LabelBinarizer()
y = lab.fit_transform(lables)
print('Y'+'\n'+str(y))
输出:
特征提取后的X
[[0. 0. 1. 0. 1. 1. 0. 0. 1. 0.][0. 0. 1. 1. 0. 1. 0. 0. 1. 0.][1. 0. 0. 0. 1. 1. 0. 0. 1. 0.][0. 1. 0. 0. 1. 0. 0. 1. 1. 0.][0. 1. 0. 0. 1. 0. 1. 0. 0. 1.][0. 1. 0. 1. 0. 0. 1. 0. 0. 1.][1. 0. 0. 1. 0. 0. 1. 0. 0. 1.][0. 0. 1. 0. 1. 0. 0. 1. 1. 0.][0. 0. 1. 0. 1. 0. 1. 0. 0. 1.][0. 1. 0. 0. 1. 0. 0. 1. 0. 1.][0. 0. 1. 1. 0. 0. 0. 1. 0. 1.][1. 0. 0. 1. 0. 0. 0. 1. 1. 0.][1. 0. 0. 0. 1. 1. 0. 0. 0. 1.][0. 1. 0. 1. 0. 0. 0. 1. 1. 0.]]
特征提取后的Y:
[[0][0][1][1][1][0][1][0][1][1][1][1][1][0]]
建立决策树模型
result = tree.DecisionTreeClassifier(criterion='entropy')
#使用特征选择标准为entropy,默认为基尼系数”gini”
result.fit(x,y)
# print('result'+str(result))
with open('tree1.dot','w') as f:f = tree.export_graphviz(result,out_file=f,feature_names=vec.get_feature_names())
#保存成文件
关于特征标准选择可以参考这篇文章
可以使用Graphviz工具可视化决策树(需要配置成环境变量才可以在控制台使用)
命令:dot -Tpdf tree1.dot -o pic.pdf
结果如下:
简单的python决策树案例相关推荐
- python爬虫简单实例-最简单的Python爬虫案例,看得懂说明你已入门,附赠教程
原标题:最简单的Python爬虫案例,看得懂说明你已入门,附赠教程 这是最简单的Python爬虫案例,如果你能看懂,那么请你保持信心,因为你已经入门Python爬虫,只要带着信心和努力,你的技术能力在 ...
- python 筛选提取连续多行_没有比这更简单的Python入门案例,用python打印你的宠物小精灵...
现在学习Python的人越来越多,但你会以怎样的方式开始编写你的第一个Python代码呢? 下面我教你一个简单的入门案例,很适合最开始的Python学习哦! 即将用到的Python基础语法是:prin ...
- python决策树案例_决策树案例:基于python的商品购买能力预测系统
1 决策树/判定树(decision tree) 1 决策树(Dicision Tree)是机器学习有监督算法中分类算法的一种,有关机器学习中分类和预测算法的评估主要体现在:准确率:预测的准确与否是本 ...
- python简单实例-python简单案例
广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 一个简单的python资讯采集案例,列表页到详情页,到数据保存,保存为txt文档, ...
- 史上最简单的spark教程第二十三章-运行第一个机器学习Java和Python代码案例
[提前声明] 文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章 写作不易,转载请注明,谢谢! 代码案例地址: ?https://github.com/Mydreamandrea ...
- python决策树剪枝_决策树剪枝算法的python实现方法详解
python 决策树怎样修剪枝 剪枝是决策树停止分支的方法之一,剪枝有分预先剪枝和后剪枝两种.预先剪枝是在树的生长过程中设定一个指标,当达到该指标时就停止生长,这样做容易产生"爱已不在,却还 ...
- 数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户...
原文链接:http://tecdat.cn/?p=23518 项目背景:银行的主要盈利业务靠的是贷款,这些客户中的大多数是存款大小不等的责任客户(存款人).银行拥有不断增长的客户(点击文末" ...
- 独家 | 如何用简单的Python为数据科学家编写Web应用程序?(附代码链接)
作者:拉胡尔·阿加瓦尔(Rahul Agarwal), Walmart 实验室的数据科学家 翻译:陈之炎 校对:闫晓雨 本文约4300字,建议阅读10分钟. 本文阐述如何使用StreamLit创建支持 ...
- rust python扩展_Rust语言优化Python性能案例
原标题:Rust语言优化Python性能案例 导读:Python 被很多互联网系统广泛使用,但在另外一方面,它也存在一些性能问题,不过 Sentry 工程师分享的在关键模块上用另外一门语言 Rust ...
最新文章
- 通过创建 HttpCookie 对象的实例编写 Cookie
- 五分钟教会你函数式编程与闭包
- Shell编程之matrix---装逼又炫酷
- java学习笔记(十一)基本数据类型的对象包装类
- 分享2018年陆陆续续读过的书-附书单
- OpenGL编程低级错误范例手册
- mysql设置环境变量
- pycharm创建我的第一个项目
- python人脸识别库_基于facenet的实时人脸识别系统
- eLife:一个开源、高性能的自动睡眠分期工具
- CVPR 2020 | 旷视研究院提出优化领域自适应物体检测性能的类别正则化框架
- Linux perlbrew Perl5 安装教程
- 使用PlotNeuralNet绘制自己的网络结构图
- 正睿集训模拟赛 Day1
- 金额保留小数点后两位方法
- 程序设计第二十二题 空心三角形
- DirectX11 板条箱示例Demo
- 计算机怎么让隐藏的文件夹不能搜索,电脑怎么巧妙隐藏文件夹让人找不到?隐藏电脑文件方法教程...
- 苹果电脑常用的计算机英语怎么说,史上最强苹果电脑Mac Pro发布 有啥亮点(中英文)...
- 思科和思杰联袂提供全面的桌面虚拟化解决方案
热门文章
- Linux设置屏幕分辨率
- matlab正态分布均值和方差,MATLAB如何使用normstat函数计算正态分布的期望与方差...
- 运算放大器偏置电阻的计算
- 【python解决SQLAlchemy+MySQL插入数据时报警告Warning: (1366, “Incorrect string value: ‘\\xD6\\xD0\\xB9\\xFA\\xB】
- 【用VSCode编写MarkDown并导出Epub电子书】
- 利用python向word文档模板中写入内容
- ATmega8 定时器 中断 外部中断 程序
- Java总结六:面向对象编程(上)
- iOS Jenkins自动化打包
- VS--无法迁移解决方案文件(解决办法)