决策树是一种机器学习的方法。决策树的生成算法有ID3, C4.5和C5.0等。决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。

决策树是一种十分常用的分类方法,需要监管学习(Supervised Learning),监管学习就是给出一堆样本,每个样本都有一组属性和一个分类结果,也就是分类结果已知,那么通过学习这些样本得到一个决策树,这个决策树能够对新的数据给出正确的分类。

sklearn是一个Python第三方提供的非常强力的机器学习库,它包含了从数据预处理到训练模型的各个方面。sklearn拥有可以用于监督和无监督学习的方法。

我们这里使用了sklearn中的决策树算法

"""-*- coding: utf-8 -*-author: Hao Hu@date   2021/12/19 9:00 AM
"""
from matplotlib import pyplot as plt
import numpy as np
from sklearn import tree
from sklearn.datasets import load_irisdef decison_tree():# show data infodata = load_iris()  # 加载 IRIS 数据集print('keys: \n', data.keys())  # ['data', 'target', 'target_names', 'DESCR', 'feature_names']feature_names = data.get('feature_names')print('feature names: \n', data.get('feature_names'))  # 查看属性名称print('target names: \n', data.get('target_names'))  # 查看 label 名称x = data.get('data')  # 获取样本矩阵y = data.get('target')  # 获取与样本对应的 label 向量print(x.shape, y.shape)  # 查看样本数据print(data.get('DESCR'))# visualize the dataf = []f.append(y == 0)  # 类别为第一类的样本的逻辑索引f.append(y == 1)  # 类别为第二类的样本的逻辑索引f.append(y == 2)  # 类别为第三类的样本的逻辑索引color = ['red', 'blue', 'green']fig, axes = plt.subplots(4, 4)  # 绘制四个属性之间的散点图for i, ax in enumerate(axes.flat):row = i // 4col = i % 4if row == col:ax.text(.1, .5, feature_names[row])ax.set_xticks([])ax.set_yticks([])continuefor k in range(3):ax.scatter(x[f[k], row], x[f[k], col], c=color[k], s=3)fig.subplots_adjust(hspace=0.3, wspace=0.3)  # 设置间距plt.show()# 随机划分训练集和测试集num = x.shape[0]  # 样本总数ratio = 7 / 3  # 划分比例,训练集数目:测试集数目num_test = int(num / (1 + ratio))  # 测试集样本数目num_train = num - num_test  # 训练集样本数目index = np.arange(num)  # 产生样本标号np.random.shuffle(index)  # 洗牌x_test = x[index[:num_test], :]  # 取出洗牌后前 num_test 作为测试集y_test = y[index[:num_test]]x_train = x[index[num_test:], :]  # 剩余作为训练集y_train = y[index[num_test:]]# 构建决策树clf = tree.DecisionTreeClassifier()  # 建立决策树对象clf.fit(x_train, y_train)  # 决策树拟合# 预测y_test_pre = clf.predict(x_test)  # 利用拟合的决策树进行预测print('the predict values are', y_test_pre)  # 显示结果# 计算分类准确率acc = sum(y_test_pre == y_test) / num_testprint('the accuracy is', acc)  # 显示预测准确率if __name__ == '__main__':decison_tree()

参考链接:

scikit-learn (sklearn) 官方文档中文版

https://blog.csdn.net/healingwounds/article/details/83786729

决策树实例(基于iris)相关推荐

  1. DecisionTreeClassifier实例:Iris莺尾花分类

    文章目录 Decision Trees决策树 DecisionTreeClassifier 参数 实例:Iris鸢尾花数据集的决策树分类 基础版本 进阶版本 代码细节 python.enumerate ...

  2. R语言explore包进行探索性数据分析实战(EDA、exploratory data analysis):基于iris数据集

    R语言explore包进行探索性数据分析实战(EDA.exploratory data analysis):基于iris数据集 目录

  3. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测daiding

    ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...

  4. DL之PerceptronAdalineGD:基于iris莺尾花数据集利用Perceptron感知机和AdalineGD算法实现二分类

    DL之Perceptron&AdalineGD:基于iris莺尾花数据集利用Perceptron感知机和AdalineGD算法实现二分类 目录 基于iris莺尾花数据集利用Perceptron ...

  5. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测

    ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...

  6. oracle高级查询案例,oracle高级查询(实例基于scott用户四张表)

    oracle高级查询(实例基于scott用户四张表) 分组查询 多表查询 子查询 综合实例 ====================================================== ...

  7. 基于`IRIS`,动态解析`HL7`消息

    文章目录 基于`IRIS`,动态解析`HL7`消息 什么是`HL7` `HL7` 版本 `HL7` 消息结构 段(`Segment`) 字段(`Field`) `HL7` 数据类型 在`IRIS`中查 ...

  8. 浅谈一下个人基于IRIS后端业务开发框架的理解

    文章目录 浅谈一下个人基于IRIS后端业务开发框架的理解 现状 方案 具体实现 `Base` `Biz` `Data` `Filter` `Sql` `Imp`.`Ref` `Api` `Util` ...

  9. 利用sklearn库决策树模型对iris数据多分类并进行评估

    1.导入所需要的库 from sklearn.tree import DecisionTreeClassifier from sklearn.datasets import load_iris 2.加 ...

  10. 决策树实例load_wine数据集

    决策树实例-红酒数据集 无参数模型 from sklearn import tree from sklearn.datasets import load_wine from sklearn.model ...

最新文章

  1. 红外感应自动出水水龙头的电路原理
  2. 一封邮件, 就能看出你是不是足够专业
  3. ASP.NET AJAX1.0尝鲜试用:Web Service调用
  4. Spring MVC学习总结(8)——Swagger入门详解
  5. Linux下安装composer报错 The openssl extension is missing / The zlib extension is not loaded等等
  6. 浅析crontab命令
  7. 使用VLC Media Player 在Mac上修剪视频
  8. 基于51单片机智能小车的设计与实现
  9. 尚品汇 09_支付模块
  10. three doors
  11. 如何制作一面智能镜子
  12. The multi-part request contained parameter data (excluding uploaded files)
  13. jquery中json数组转成对象的方法
  14. 梅森数 (10 分)
  15. python3中flask下载文件:图像.jpg
  16. Bootloader 的作用
  17. Node.js知识点整理之----Buffer类
  18. Java web 项目技术文档目录结构
  19. 计算机主机接口有哪些,电脑主机后面的那些插孔,分别是插什么的
  20. android p三星,索尼XZ3新机采用Android P系统,对标三星note9,网友:外观

热门文章

  1. Freeonline在线编辑器(自由软件)
  2. Linux系列教程——Shell、Linux文件管理
  3. 史上最靠谱 Ubuntu 镜像下载
  4. Polyworks脚本开发学习笔记(二)-TREEVIEW基本操作
  5. Chrome、safi、IE浏览器通用上一步、下一步代码
  6. IBM中枪后,下一个是谁?
  7. 发力剧场化,优爱腾芒离奈飞再近一步
  8. 线雕提升一周后的图片,忘记这个事!
  9. 正菱台体积在线计算机,立方米,升,立方码,加仑,盎司,桶等常见体积容积单位转换在线计算器_三贝计算网_23bei.com...
  10. 2022-1-15 Leetcode 1513.仅含1的子串数