python代码如下

from sklearn.feature_extraction import DictVectorizer
from sklearn import tree
from sklearn import preprocessing
import csv
import graphvizDtree = open('西瓜数据集3.0.csv', 'r')
reader = csv.reader(Dtree)
"""
色泽 1-3代表 浅白 青绿 乌黑
根蒂 1-3代表 稍蜷 蜷缩 硬挺
敲声 1-3代表 清脆 浊响 沉闷
纹理 1-3代表 清晰 稍糊 模糊
脐部 1-3代表 平坦 稍凹 凹陷
触感 1-2代表 硬滑 软粘
好瓜 1代表 是 0 代表 不是
"""# 获取第一行数据
headers = reader.__next__()
print(headers)
# 特征和标签列表
featureList = []
labelList = []for row in reader:labelList.append(row[-1])rowDict = {}for i in range(1, len(row)-3):rowDict[headers[i]] = row[i]featureList.append(rowDict)
print(featureList)
# 将特征列表转换为01表示
vec = DictVectorizer()
x_data = vec.fit_transform(featureList).toarray()
print("x_data: " + str(x_data))
# 将标签列表转换为01表示
lb = preprocessing.LabelBinarizer()
y_data = lb.fit_transform(labelList)
print("y_data: " + str(y_data))# 创建决策树模型
model = tree.DecisionTreeClassifier(criterion='entropy')
# 输入数据建立模型
model.fit(x_data, y_data)# 测试
x_test = x_data[0]
predict = model.predict(x_test.reshape(1,-1))
print("predict: " + str(predict))# 导出决策树
dot_data = tree.export_graphviz(model,out_file=None,feature_names=vec.get_feature_names(),class_names=lb.classes_,filled=True,rounded=True,special_characters=True)
graph = graphviz.Source(dot_data)
graph.render('Tree')

西瓜数据集3.0数据如下

number colour and lustre root and base Knock venation umbilical region touch density sugar content good
1 2 2 2 1 3 1 0.697 0.46 1
2 3 2 3 1 3 1 0.744 0.376 1
3 3 2 2 1 3 1 0.634 0.264 1
4 2 2 3 1 3 1 0.608 0.318 1
5 1 2 2 1 3 1 0.556 0.215 1
6 2 1 2 1 2 2 0.403 0.237 1
7 3 1 2 2 2 2 0.481 0.149 1
8 3 1 2 1 2 1 0.437 0.211 1
9 3 1 3 2 2 1 0.666 0.091 0
10 2 3 1 1 1 2 0.243 0.267 0
11 1 3 1 3 1 1 0.245 0.057 0
12 1 2 2 3 1 2 0.343 0.099 0
13 2 1 2 2 3 1 0.639 0.161 0
14 1 1 3 2 3 1 0.657 0.198 0
15 3 1 2 1 2 2 0.36 0.37 0
16 1 2 2 3 1 1 0.593 0.042 0
17 2 2 3 2 2 1 0.719 0.103 0

结果PDF如下:

随后可以进行预剪枝和后剪枝来使结构变得更加清晰简单。

机器学习:决策树算法案例(西瓜数据集3.0)相关推荐

  1. Python数据分析实战【十二】:机器学习决策树算法案例实战【文末源码地址】

    文章目录 构造数据 决策树解决 报错解决 源码地址 构造数据 我们用pandas生成20条数据,其中标签为bad的数据有6条,标签为good的数据有14条,代码如下: import pandas as ...

  2. 机器学习实验:使用sklearn的决策树算法对葡萄酒数据集进行分类

    机器学习实验:使用sklearn的决策树算法对葡萄酒数据集进行分类 问题如下: 使用sklearn的决策树算法对葡萄酒数据集进行分类,要求: ①划分训练集和测试集(测试集占20%) ②对测试集的预测类 ...

  3. 周志华《机器学习》3.5答案-编程实现线性判别分析,并给出西瓜数据集3.0α上的结果

    #机器学习线性判别分析3.5题 import numpy as np import matplotlib.pyplot as plt data = [[0.697, 0.460, 1],[0.774, ...

  4. 机器学习《西瓜书》9.4解答——k-means算法:编程实现k均值算法,设置三组不同的k值、三组不同初始中心点,在西瓜数据集4.0上进行实验比较,并讨论什么样的初始中心有助于得到好结果。

    1.运行结果:(注:图中方块标注的点为随机选取的初始样本点) k=2时: 本次选取的2个初始向量为[[0.243, 0.267], [0.719, 0.103]] 共进行61轮 共耗时0.10s k= ...

  5. 机器学习 决策树算法

    4.1 决策树算法简介 学习目标 知道什么是决策树 能够通过sklearn实现决策树分类,进一步认识决策树 1 概念 决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-else结构,最早的决 ...

  6. [飞桨机器学习]决策树算法

    [飞桨机器学习]决策树算法 一.简介 1.概述 决策树算法是一种逼近离散函数值的方法.它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析.本质 ...

  7. 机器学习算法笔记--------建立西瓜数据集

    西瓜书里面常用的三个数据集,西瓜数据集2.0,3.0,4.0整理如下,注意中文容易出现乱码. 西瓜数据集2.0 西瓜数据集3.0 西瓜数据集4.0 import pandas as pddef cre ...

  8. 机器学习——决策树算法原理及案例

    机器学习在各个领域都有广泛的应用,特别在数据分析领域有着深远的影响.决策树是机器学习中最基础且应用最广泛的算法模型.本文介绍了机器学习的相关概念.常见的算法分类和决策树模型及应用.通过一个决策树案例, ...

  9. 机器学习——决策树算法

    文章目录 一.决策树介绍 二.利用信息增益选择最优划分属性 三.ID3代码实现 1.jupyter下python实现 2. 使用sklearn实现ID3 四.C4.5算法实现 五.CART算法实现 六 ...

  10. 机器学习决策树算法泰坦尼克号乘客生存预测

    目录 1 决策树算法api 2 泰坦尼克号乘客案例背景 2.1 步骤分析 2.2 代码实现 2.3 决策树可视化 2.3.1 保存树的结构到dot文件 2.3.2 网站显示结构 3 决策树总结 4 小 ...

最新文章

  1. 韦世东:计划 35 岁「退休」的资深爬虫工程师
  2. 4月书讯(下)| 美亚4.8星评,又一本口碑相传的著作来了
  3. 前端学习(1797):前端调试之css伪元素
  4. Spark 之 故障排除(二)
  5. 云计算教程学习入门视频课件:常用数据库排名
  6. 5款Windows 界面原型设计工具
  7. Honeywell 扫描枪安装
  8. 计算机网络基础知识框架
  9. 万卷书 - 如何在股市中赚钱 How to Make Money in Stocks
  10. 基于multisim的zcs电路仿真
  11. 数据库内容:用于园林施工与养护的学习软件系统
  12. 一般描绘性形容词_描绘性形容词和限制性形容词
  13. 美团旅游召回系统设计
  14. Syzmlw蜗居在线播放
  15. Unity3D 参数曲线 实现曲线上的匀速运动
  16. 大型施工程机械设备资产管理融资租赁方案
  17. 服务器安全证书更新失败怎么回事,手机安全证书更新失败怎么办
  18. 必备技能06:UML类图要素及解析
  19. vue后台系统管理项目-openlayers地图定位、港口数据标记功能
  20. three.js 07-06 之 Sprite 一幅图片多个精灵

热门文章

  1. 软件收集-建筑工程资料软件
  2. spss26没有典型相关性分析_SPSS执行典型相关性分析,出现下面错误,怎么回事??...
  3. 【计算机网络】数据链路层(超多图详析)
  4. 淘宝以图搜图接口,图片搜索商品接入指南
  5. 回顾备忘—Android系统hal层相关系统粗概
  6. 【已测】开源PHP个人导航网站源码,有后台
  7. android studio下载sdk的方法,Android Studio修改Android SDK路径的几种方法
  8. 射频功放学习之基础篇(一)
  9. 目前常见软件保护技术概述
  10. Android上的APP图标常见尺寸规范