步骤:

收集数据:使用书中提供的小型数据集

准备数据:对文本中的数据进行预处理,如解析数据行

分析数据:快速检查数据,并使用createPlot()函数绘制最终的树形图

训练决策树:使用createTree()函数训练

测试决策树:编写简单的测试函数验证决策树的输出结果&绘图结果

使用决策树:这部分可选择将训练好的决策树进行存储,以便随时使用

1、数据集

young    myope   no  reduced no lenses
young   myope   no  normal  soft
young   myope   yes reduced no lenses
young   myope   yes normal  hard
young   hyper   no  reduced no lenses
young   hyper   no  normal  soft
young   hyper   yes reduced no lenses
young   hyper   yes normal  hard
pre myope   no  reduced no lenses
pre myope   no  normal  soft
pre myope   yes reduced no lenses
pre myope   yes normal  hard
pre hyper   no  reduced no lenses
pre hyper   no  normal  soft
pre hyper   yes reduced no lenses
pre hyper   yes normal  no lenses
presbyopic  myope   no  reduced no lenses
presbyopic  myope   no  normal  no lenses
presbyopic  myope   yes reduced no lenses
presbyopic  myope   yes normal  hard
presbyopic  hyper   no  reduced no lenses
presbyopic  hyper   no  normal  soft
presbyopic  hyper   yes reduced no lenses
presbyopic  hyper   yes normal  no lenses

2、代码如下

# -*- coding: UTF-8 -*-
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.externals.six import StringIO
from sklearn import tree
import pandas as pd
import numpy as np
import pydotplusif __name__ == '__main__':with open('lenses.txt', 'r') as fr:                                       #加载文件lenses = [inst.strip().split('\t') for inst in fr.readlines()]      #处理文件lenses_target = []                                                        #提取每组数据的类别,保存在列表里for each in lenses:lenses_target.append(each[-1])# print(lenses_target)lensesLabels = ['age', 'prescript', 'astigmatic', 'tearRate']           #特征标签       lenses_list = []                                                       #保存lenses数据的临时列表lenses_dict = {}                                                       #保存lenses数据的字典,用于生成pandasfor each_label in lensesLabels:                                         #提取信息,生成字典for each in lenses:lenses_list.append(each[lensesLabels.index(each_label)])lenses_dict[each_label] = lenses_listlenses_list = []# print(lenses_dict)                                                     #打印字典信息lenses_pd = pd.DataFrame(lenses_dict)                                   #生成pandas.DataFrame# print(lenses_pd)                                                       #打印pandas.DataFramele = LabelEncoder()                                                     #创建LabelEncoder()对象,用于序列化            for col in lenses_pd.columns:                                           #序列化lenses_pd[col] = le.fit_transform(lenses_pd[col])# print(lenses_pd)                                                        #打印编码信息clf = tree.DecisionTreeClassifier(max_depth = 4)                       #创建DecisionTreeClassifier()类clf = clf.fit(lenses_pd.values.tolist(), lenses_target)                    #使用数据,构建决策树dot_data = StringIO()tree.export_graphviz(clf, out_file = dot_data,                         #绘制决策树feature_names = lenses_pd.keys(),class_names = clf.classes_,filled=True, rounded=True,special_characters=True)graph = pydotplus.graph_from_dot_data(dot_data.getvalue())graph.write_pdf("tree.pdf")                                               #保存绘制好的决策树,以PDF的形式存储。print(clf.predict([[1,1,1,0]]))         

机器学习之决策树实践:隐形眼镜类型预测相关推荐

  1. 基于决策树的隐形眼镜类型预测

    隐形眼镜数据集是著名的数据集,它包含很多患者眼部状况的观察条件以及医生推荐的隐形眼镜类型.隐形眼镜的类型包括硬材质.软材质以及不适合佩戴隐形眼镜.数据集如下图所示,第一列代表年龄'age',第二列代表 ...

  2. matlab隐形眼镜类型预测,【实现】利用决策树推荐隐形眼镜类型

    背景介绍:根据患者眼部状况的观察条件,利用决策树来向患者推荐隐形眼镜的类型. 1. 收集数据 数据集来自于UCI数据库的隐形眼镜数据集. 数据格式 2. 准备数据 解析tab键分割的数据行.def r ...

  3. 机器学习之决策树实现隐形眼镜预测

    代码: from math import log import operator import time import pickle import matplotlib.pyplot as pltde ...

  4. matlab隐形眼镜类型预测,决策树预测隐形眼镜类型

    脚步不停,伸出舌头轻轻舔,自己有些干燥的嘴唇,目,神色浮现., 欧阳,有天尊二重,你怎么猜到老夫五重,?", 过日子哩,你要是真的不嫌,真的不嫌弃我,我就拜你做自己还在世的,世的父亲,你就, ...

  5. 机器学习——决策树实践(预测隐形眼镜类型)

    前言 之前把<机器学习实战>这本书的分类部分学完了,想自己动手实践一下,所以从前面的章节开始,慢慢熟悉代码. 今天在学习决策树的时候,发现书中并没有直接给出预测隐形眼镜类型的代码,于是想借 ...

  6. 机器学习算法(二):决策树理论与python实现+经典应用(预测隐形眼镜类型)

        最近重温了本科学过的一个算法,决策树.想写篇博文整理一下,一则与大家分享,希望能帮到有需要的人.二来作为一个学习笔记,记录一下学习内容.为了让大家对这个算法有一个系统清晰的认识,这篇博文侧重于 ...

  7. 机器学习实战--决策树ID3的构建、画图与实例:预测隐形眼镜类型

    声明 本文参考了<机器学习实战>书中代码,结合该书讲解,并加之自己的理解和阐述 机器学习实战系列博文 机器学习实战--k近邻算法改进约会网站的配对效果 机器学习实战--决策树的构建.画图与 ...

  8. 机器学习实战3.4决策树项目案例03:使用Sklearn预测隐形眼镜类型

    搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多人工智能.机器学习干货 csdn:https://blog.csdn.net/baidu_31657889/ github ...

  9. 【python和机器学习入门2】决策树3——使用决策树预测隐形眼镜类型

    参考博客:决策树实战篇之为自己配个隐形眼镜 (po主Jack-Cui,<--大部分内容转载自 参考书籍:<机器学习实战>--第三章3.4 <--决策树基础知识见前两篇 , 摘要 ...

最新文章

  1. URL化 替换空格
  2. 搭建SpringBoot、Jsp支持学习笔记
  3. 324. Wiggle Sort II | 324. 摆动排序 II(降序穿插)
  4. The following module was built either with optimizations enabled or without debug information - winz
  5. fixture.detectChange开始单步调试,如何执行到Directive的ngAfterViewInit钩子
  6. 延迟分析中的案例研究:锁定与同步
  7. LeetCode——350. 两个数组的交集 II
  8. Linq GroupJoin 使用
  9. lisp提取长方形坐标_用 Python 对图片主体轮廓进行提取、颜色标记、并计算区域面积...
  10. juyter显示决策树图形_关于决策树可视化的treePlotter(学习笔记)
  11. SLAM_ORB-SLAM3回环检测是怎么做的?
  12. 3500份课程课后习题答案与大家分享~~
  13. 2021爱分析·中国人工智能应用趋势报告——新基建助推,人工智能应用迈入新阶段
  14. 平面设计基础学习-1
  15. 12. 查询表product——查询库存商品中,最高单价、最低单价分别是多少
  16. FairGuard游戏Lua加密方案解析
  17. 信息系统项目管理师---第五章 项目范围管理
  18. CISSP-AIO-快速提示内容梳理
  19. 十年建站老司机带你十分钟搭建网站
  20. 7000字用户画像技术及方法论

热门文章

  1. KNN和Kmeans比较
  2. 读jquery 权威指南[3]-动画
  3. c语言发票的编码,增值税普通发票(折叠票)的发票代码有几位?
  4. 查询计算机上可用端口的两种方法
  5. 案例研究 | 瓜子二手车战略升级三部曲
  6. 美团外卖token解密(Java版)
  7. 微服务项目--商城管理系统的整合与测试
  8. 【ValueError: could not convert string to float: ‘young‘】python利用pandas对string类型的数据序列化
  9. Kaldi语音识别技术
  10. Office 16 Click-to-Run Extensibility Component 卸载