目录

一、决策树算法概述

1、树模型

2、树的组成

3、决策树的训练与测试

训练阶段

测试阶段

二、熵的作用

1、如何切分特征(选择节点)

问题

想象一下

目标

2、衡量标准-熵

熵值公式

举例

三、信息增益原理

1、熵值

2、信息增益

四、决策树构造实例

1、实例

数据

特征

目标

2、决策树构造

例子:基于天气划分

五、信息增益率与gini系数

决策树算法

ID3

C4.5

CART

GINI系数

连续值

六、预剪枝方法

决策树剪枝策略

为什么要剪枝

剪枝策略

预剪枝

七、后剪枝方法

八、回归问题解决


一、决策树算法概述

1、树模型

决策树:从根节点开始一步步走到叶子节点(决策)。所有的数据最终都会落到叶子节点,既可以做分类也可以做回归。

2、树的组成

根节点:第一个选择点

非叶子节点与分支:中间过程

叶子节点:最终的决策结果

3、决策树的训练与测试

  • 训练阶段

从给定的训练集构造出来一棵树(从跟节点开始选择特征, 如何进行特征切分)。有数据想构建树。

  • 测试阶段

根据构造出来的树模型从上到下去走一遍就好了。有数据想得结果。

一旦构造好了决策树,那么分类或者预测任务就很简单了,只需要走一遍 就可以了,那么难点就在于如何构造出来一颗树,这就没那么容易了,需 要考虑的问题还有很多的!

二、熵的作用

1、如何切分特征(选择节点)

  • 问题

根节点的选择该用哪个特征呢?接下来呢?如何切分呢?

  • 想象一下

我们的目标应该是根节点就像一个老大似的能更好的切分数据 (分类的效果更好),根节点下面的节点自然就是二当家了。

  • 目标

通过一种衡量标准,来计算通过不同特征进行分支选择后的分类 情况,找出来最好的那个当成根节点,以此类推。

2、衡量标准-熵

熵是表示随机变量不确定性的度量 。(解释:说白了就是物体内部的混乱程度,比如杂货市场里面什么都有 那肯定混乱呀,专卖店里面只卖一个牌子的那就稳定多啦)

  • 熵值公式

, i=1,2, ... , n

  • 举例

A集合[1,1,1,1,1,1,1,1,2,2] B集合[1,2,3,4,5,6,7,8,9,1]

显然A集合的熵值要低,因为A里面只有两种类别,相对稳定一些。而B中类别太多了,熵值就会大很多。(在分类任务中我们希望通过节点分支后数据类别的熵值大还是小呢?)

三、信息增益原理

1、熵值

不确定性越大,得到的熵值也就越大。

当p=0或p=1时,H(p)=0,随机变量完全没有不确定性。

当p=0.5时,H(p)=1,此时随机变量的不确定性最大。

2、信息增益

特征X使得类Y的不确定性减少的程度。 (分类后的专一性,希望分类后的结果是同类在一起)

四、决策树构造实例

1、实例

  • 数据

14天打球情况

  • 特征

4种环境变化

  • 目标

构造决策树,判断当出现一种天气的情况下,打不打球。

2、决策树构造

划分方式:4种

问题:谁当根节点呢?

依据:信息增益

例子:基于天气划分

  • 在历史数据中(14天)有9天打球,5天不打球,所以此时的熵应为:

  • 4个特征逐一分析,先从outlook特征开始:

Outlook = sunny时,熵值为0.971

Outlook = overcast时,熵值为0

Outlook = rainy时,熵值为0.971

  • 加权计算

根据数据统计,outlook取值分别为sunny,overcast,rainy的概率分别为:5/14, 4/14, 5/14

熵值计算:5/14 * 0.971 + 4/14 * 0 + 5/14 * 0.971 = 0.693

(gain(temperature)=0.029 gain(humidity)=0.152 gain(windy)=0.048)

  • 计算信息增益

信息增益:系统的熵值从原始的0.940下降到了0.693,增益为0.247。

同样的方式可以计算出其他特征的信息增益,那么我们选择最大的那个,相当于是遍历了一遍特征,找出来了大当家,然后再其余中继续通过信息增益找二当家!

(找:信息增益大,熵值小)

五、信息增益率与gini系数

决策树算法

  • ID3

信息增益(有什么问题呢?)

问题:ID当做特征,熵值为0,不适合解决稀疏特征,种类非常多的。

  • C4.5

信息增益(解决ID3问题,考虑自身熵)

  • CART

使用GINI系数来当做衡量标准

  • GINI系数

(和熵的衡量标准类似,计算方式不相同)

连续值

进行离散化。

六、预剪枝方法

决策树剪枝策略

  • 为什么要剪枝

决策树过拟合风险很大,理论上可以完全分得开数据 (想象一下,如果树足够庞大,每个叶子节点不就一个数据了嘛)

  • 剪枝策略

(预剪枝,后减枝)

预剪枝

边建立决策树过程中进行剪枝的操作(更实用)。

限制深度,叶子节点个数。叶子节点样本数,信息增益量等。

七、后剪枝方法

后剪枝:当建立完决策树后来进行剪枝操作。

通过一定的衡量标准

:损失

:gini系数

:叶子节点个数

(叶子节点越多,损失越大)

八、回归问题解决

回归问题将方差作为衡量(评估)标准。看标签的平均方差。

分类问题将熵值作为衡量标准。

唐宇迪学习笔记11:决策树算法相关推荐

  1. 唐宇迪学习笔记18:案例——SVM调参实例

    目录 一.SVM案例:线性支持向量机 SVM:支持向量机 支持向量基本原理 例子 Support Vector Machines: 最小化 雷区 训练一个基本的SVM 对比实验 二.软间隔C值对结果的 ...

  2. 唐宇迪学习笔记10:项目实战-交易数据异常检测

    目录 一.任务目标解读 信用卡欺诈检测 任务流程: 主要解决问题: 二.项目挑战与解决方案制定 1.导入我们的工具包 2.数据读取 3.数据标签分布 三.数据标准化处理 四.下采样数据集制作 五.交叉 ...

  3. 唐宇迪学习笔记4:Python可视化库——Seaborn

    目录 一.整体布局风格设置 五种主题风格 1.darkgrid 2.whitegrid 3.dark 4.white 5.ticks 二.风格细节设置 1.指定画图距离轴线的位置 2.指定轴的隐藏与否 ...

  4. 唐宇迪学习笔记3:Python数据可视化库——Matplotlib

    目录 一.Matplotlib概述 最基本的图 线条格式 线条颜色 颜色与格式结合 二.子图与标注 绘制多个线 指定线条的宽度 自定义参数 子图 给图上加上注释 三.风格设置 ​四.条形图 五.条形图 ...

  5. 唐宇迪学习笔记20:聚类算法——DBSCAN

    目录 一.DBSCAN聚类算法 (Density-Based Spatial Clustering of Applications with Noise) 二.DBSCAN工作流程 工作流程 参数选择 ...

  6. 唐宇迪学习笔记1:Python环境安装、Pytho科学计算库——Numpy

    目录 一.AI数据分析入门 ​1.案例来源 2.Python环境配置(Python3) Python的安装 Python库安装工具 Jupyter Notebook 二.Python科学计算库--Nu ...

  7. 唐宇迪Pytorch笔记(附课程资料)

    目录 pytorch_tutorial 介绍 软件架构 安装教程 所需python包 使用说明 配套资料 { title = {pytorch深度学习实战}, author = {唐宇迪}, url ...

  8. 23神经网络 :唐宇迪《python数据分析与机器学习实战》学习笔记

    唐宇迪<python数据分析与机器学习实战>学习笔记 23神经网络 1.初识神经网络 百度深度学习研究院的图,当数据规模较小时差异较小,但当数据规模较大时深度学习算法的效率明显增加,目前大 ...

  9. 唐宇迪机器学习实战课程笔记(全)

    1. 线性回归 1.1线性回归理论 1.2线性回归实战 2.训练调参基本功(线性回归.岭回归.Lasso回归) 2.1 线性回归模型实现 2.2不同GD策略对比 2.3多项式曲线回归 2.4过拟合和欠 ...

  10. 自然语言处理Word2Vec视频学习教程-唐宇迪-专题视频课程

    自然语言处理Word2Vec视频学习教程-7870人已学习 课程介绍         自然语言处理Word2Vec视频培训课程:自然语言处理中重要的算法,word2vec原理,词向量模型.教程从语言模 ...

最新文章

  1. AIoT开放平台及应用
  2. AEC、AGC、ANS在视音频会议中的作用?
  3. 操作系统复习之线程、对称多处理和微内核
  4. Ubuntu之12.04常用快捷键——记住这些你就是高手啦!
  5. 过年啦!抽奖发2022元红包!
  6. SSL自签名的实现类org apache commons httpclient contrib ssl EasySSLP
  7. 诺基亚宣布与博通合作开发5G芯片 包括定制处理器
  8. 从fragment启动另一个fragment
  9. 『教程』笔记本win7下自建Wifi热点–便于手机Wifi上网 (转 )
  10. 函数适配器:bind2nd
  11. h3c交换机怎么设置虚拟服务器,H3C交换机配置 | 如何实现两个网段主机与外部通信...
  12. 约瑟夫环循环队列问题java_java 实现约瑟夫环
  13. IBM SL400驱动
  14. Google Earth 嵌入Qt应用程序
  15. 使用阿里云ESC服务器的时候域名解析成功为何打不开网站?
  16. 经典前端框架,一个时代的落幕:如何看待layui 官网将于 2021年10月13日 进行下线?
  17. ASP.NET清除Cookies
  18. python无法打开微信登录_如何让你的微信登录界面地球转起来(利用python实现)...
  19. phpmywind调用方法大全
  20. 科学史上最伟大的十位单身科学家

热门文章

  1. java课程设计学生信息管理系统。
  2. 活动策划方案具体流程
  3. MFC框架学习:《深入浅出MFC》阅读笔记
  4. 模拟集成电路设计基础知识(一):MOS管结构及其I/V特性
  5. Zynq7000硬件开发之电源供电系统(PDN)设计(一)
  6. 蓝桥杯官网 试题 PREV-253 历届真题 质数行者【第十一届】【决赛】【研究生组】【C++】【Java】两种解法
  7. DOS-强制结束进程命令(ntsd命令/taskkill命令)使用教程
  8. 华硕电脑的触摸板关闭
  9. 使用Wineskin 重新打包《三国志 12 威力增强版 For Mac》
  10. java 错误代码2503_错误代码:11300001 数据集配置错误