使用sklearn学习决策树(Decision Tree)

2023-05-16

决策树模型

  决策树(decision tree)是一种基本的分类与回归方法。
  分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。
  用决策树分类,从根结点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分到叶结点的类中。

     用于预测一个人是否肥胖或不肥胖的决策树

决策树学习

  决策树学习算法包括3部分:特征选择、树的生成和树的剪枝。常用的算法有ID3、 C4.5和CART。
  1、特征选择的目的在于选取对训练数据能够分类的特征。特征选择的关键是其准则。常用的准则如下:
  (1)样本集合D对特征A的信息增益(ID3)
  (2)样本集合D对特征A的信息增益比(C4.5)
  (3)样本集合D的基尼指数(CART)
  2.决策树的生成。通常使用信息增益最大、信息增益比最大或基尼指数最小作为特征选择的准则。决策树的生成往往通过计算信息增益或其他指标,从根结点开始,递归地产生决策树。这相当于用信息增益或其他准则不断地选取局部最优的特征,或将训练集分割为能够基本正确分类的子集。
   3.决策树的剪枝。由于生成的决策树存在过拟合问题,需要对它进行剪枝,以简化学到的决策树。决策树的剪枝,往往从已生成的树上剪掉一些叶结点或叶结点以上的子树,并将其父结点或根结点作为新的叶结点,从而简化生成的决策树。

使用Scikit-learn进行决策树分类
import numpy as np
from sklearn.datasets import load_iris
from sklearn import tree
import matplotlib.pyplot as plt

iris=load_iris()
print(iris.feature_names)
print(iris.target_names)

#划分数据集
removed =[0,50,100]
new_target = np.delete(iris.target,removed)
new_data = np.delete(iris.data,removed, axis=0)

#训练分类器
clf = tree.DecisionTreeClassifier() # 定义决策树分类器
clf=clf.fit(new_data,new_target)
prediction = clf.predict(iris.data[removed])

print("Original Labels",iris.target[removed])
print("Labels Predicted",prediction)

#绘制决策树
plt.figure(figsize=(15, 10))
tree.plot_tree(clf, feature_names=iris.feature_names, filled=True)
plt.show()

在这里插入图片描述
参考链接https://www.askpython.com/python/examples/decision-trees

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用sklearn学习决策树(Decision Tree) 的相关文章

  • easypoi的使用-导入校验

    easypoi导入校验 一 导入之基础校验 现在产品需要对导入的Excel进行校验 xff0c 不合法的Excel不允许入库 xff0c 需要返回具体的错误信息给前端 xff0c 提示给用户 xff0c 错误信息中需要包含行号以及对应的错误
  • springboot-日志配置

    springboot 日志配置 1 默认日志 logback 默认情况下 xff0c springboot会使用logback来记录日志 xff0c 并且使用INFO级别输出到控制台 xff0c 在运行程序的时候 xff0c 你应该看到过很
  • SpringCloud:Gateway之鉴权

    一 JWT 实现微服务鉴权 JWT一般用于实现单点登录 单点登录 xff1a 如腾讯下的游戏有很多 xff0c 包括lol xff0c 飞车等 xff0c 在qq游戏对战平台上登录一次 xff0c 然后这些不同的平台都可以直接登陆进去了 x
  • VSCode提交代码更新至github

    VSCode提交代码更新至github的步骤 在Explorer修改代码或文档转到Source control菜单 修改了代码或文档此菜单会带有修改文件数下标 先添加 stage changes xff0c 再点击 commit xff0c
  • vscode集成git

    vscode集成git 一 安装git 下载git安装包 xff0c 安装完git后配置环境变量 xff0c 在系统变量中的Path中新建 D software softwareInstall git Git cmd xff0c win 4
  • java中各种类型用Stream流求最大值最小值

    文章目录 java中各种类型用Stream流求最大值最小值一 BigDecimal 求最大值和最小值1 stream reduce 实现2 stream max 或stream min 实现 二 Integer 求最大值和最小值1 stre
  • idea:使用easyYapi插件导出yapi接口

    文章目录 idea xff1a 使用easyYapi插件导出yapi接口一 安装插件easyYapi二 配置easyYapiToken方式项目id方式 idea xff1a 使用easyYapi插件导出yapi接口 一 安装插件easyYa
  • springboot:各种下载文件的方式

    文章目录 springboot xff1a 各种下载文件的方式一 使用response输出流下载二 使用ResponseEntity三 注意 springboot xff1a 各种下载文件的方式 一 使用response输出流下载 注意第一
  • prometheus数据远程写入elasticsearch

    文章目录 prometheus数据远程写入elasticsearch一 部署elasticsearch二 部署prometheus三 通过prometheusbeat写入数据到es四 elasticsearch head验证 prometh
  • ElasticSearch 基本使用

    文章目录 ElasticSearch 基本使用一 简介二 参考文档三 ES核心概念核心概念数据类型 四 REST APIS索引API文档API查询文档API 五 SQL REST API ElasticSearch 基本使用 系统环境 El
  • SpringBoot集成Easy-Es

    文章目录 SpringBoot集成Easy Es一 集成demo二 索引CRUD创建索引查询索引更新索引删除索引 三 数据CURD四 参数文档 SpringBoot集成Easy Es Easy Es xff08 简称EE xff09 是一款
  • 最简单的markdown里面插入图片的办法 (用魔法打败魔法)

    这个问题困扰了我很久 xff1a 笔者非常喜欢用markdown 觉得他轻便 灵活 美观 xff0c 但是奈何 xff0c markdown里面插图片会显得有些棘手 xff0c 比方说最简单的用本地图片 markdown里面就是本机图片的路
  • c++面试必问:c++和c的8点不同

    前言 xff1a 最近发现很多面试题都会问到c 43 43 和c的不同 xff1b 总结一下 xff0c 发现遗漏的知识点还是挺多的 xff1b 比如c语言中 xff0c const关键字是个冒牌货 xff1b c 43 43 中struc
  • 01 - 树莓派简介以及烧录系统

    树莓派简介 指路B站 1 树莓派是什么 xff1f 树莓派就是计算机 xff0c 而计算机就是由运算器 控制器 I O设备等硬件部分以及由操作系统 应用程序组成的软件部分共同组成的整体 xff0c 即硬件和软件共同组成的整体就是计算机 xf
  • 上线啦,可以定时周期性提醒群成员的机器人

    这是站在巨人肩膀上的成果 啊 xff0c 有点夸张了 xff0c 总之简单地说 xff0c 熬了几个小时的探索和在洪振的小小帮助下实现了 xff0c 这个小小的但很有用的功能 实现钉钉机器人的自动周期性提醒群成员消息并可以选择是否 64 所
  • 如何在github上建立个人博客?

    如何在github上建立个人博客 xff1f Windows10 使用GitHub 43 Hexo 模板建立个人博客 前期准备 xff1a 1 git 2 node js 验证是否安装成功 xff1a win 43 r 输入 cmd 进入命
  • 用lvm为centos-root逻辑卷扩容

    在用linux进行开发的时候 xff0c 发现centos root下只有50G的空间 xff0c 不满足实际的需求 解决的方法有两种 xff0c 一种是外挂硬盘 xff0c 将其格式化并挂载在某目录下 xff08 如mnt xff09 x
  • STM32 IO模拟实现软件串口

    最近项目中STM32的串口资源紧张 xff0c 于是使用IO口进行模拟串口 xff0c 现进行整理记录 实现思路 IO口模拟串口的思路也比较简单 xff0c 一切按照串口协议进行操作即可 对于发送 xff0c 计算好不同波特率对应的延时时间
  • Linux命令大全(排版清晰!!持续更新!!非常详细)

    前言 最近在使用Linux的时候 xff0c 发现有很多命令不太会 在csdn查阅命令大全的时候 xff0c 发现很多文章都没有很好的排版 xff0c 于是写一篇文章 xff0c 希望能够帮助到大家 xff01 文章内容较多 xff0c 可
  • VScode 结合git的全面使用流程,再也不用记住git的命令了!

    前言 搭建 git 的环境 xff0c 能够方便的在服务器上管理好自己的代码 但是原始的git代码挺难记的 xff0c 而且会降低我们的工作效率 本文主要介绍如何使用vscode与git结合 xff0c 优雅的使用git git 介绍 这里

随机推荐