IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 机器学习系列(7)_决策树与随机森林概念 -> 正文阅读

[数据结构与算法]机器学习系列(7)_决策树与随机森林概念

注:本篇博客参考 b站:机器学习经典算法(2)——决策树与随机森林

决策树有三种算法:
在这里插入图片描述

一、熵与基尼系数

熵:一件事情的混乱程度
在这里插入图片描述

  1. 如果一个集合内部的属性很多,混乱程度就很大,则熵值也较大
  2. 如果一个集合内部的属性很少,混乱程度就很小,则熵值也较小
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
基尼系数和熵在公式上面不同,但是表达的结果是相同的。

  • 熵和基尼系数越大,说明当前分类效果越不好
  • 熵和基尼系数越小,说明当前分类效果越好

二、决策树构造实例

构造树的基本想法是随着树深度的增加,节点的熵迅速地降低。熵降低的速度越快越好,这样我们有望得到一棵高度最矮的决策树。

熵降低的速度越快越好:能有三步构造决策树,就不使用五步构造决策树。要使决策树的分类层次少。

以打球为例:
此时的熵是单纯根据以往是否打球来计算的概率,没有考虑天气等其他因素:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

三、信息增益(ID3算法)

ID3算法(信息增益):较为传统的算法,使用信息增益构建决策树。

信息增益就是将原始的熵减去用某个指标当根节点之后的熵。

在本例中就是如下所示的gain(outlook)

在这里插入图片描述
信息增益越大,那么决策树就会越简洁。这里信息增益的程度用信息熵的变化程度来衡量。

因此将四个参数的信息增益值计算出来,信息增益最大的就是根节点。

其余的节点也是一样的,类似于一个递归的操作,每次都选择同类型当中信息增益大的作为节点。

四、信息增益率(C4.5算法)

通常仅使用信息增益来绘制决策树是不靠谱的,如果某个特征存在的属性很多,但是属性对应样本的个数很少,这种情况下信息增益很大,但却无法得到我们想要的效果。

比如将ID也当成一个特征,那么每个样本的ID都是不同的,且每个样本分类当中只有自身,因此纯度很高,熵为0,信息增益最大。但这将导致每个样本都分成一类,不是我们期望的。

因此引入信息增益率。

信息增益率=信息增益 / 自身的熵值

如何衡量最终决策树的效果呢,可以使用评价函数:
在这里插入图片描述
这里使用H(t)表示每个叶子节点算出的基尼系数或者熵值,最终目的希望每个叶子节点的纯度很大,因此希望H(t)很小。

因此评价函数越小越好。

C4.5算法是ID3算法的扩展
能够处理连续型的属性。首先将连续型属性离散化,把连续型属性的值分成不同的区间,依据是比较各个分裂点Gian值的大小。
缺失数据的考虑:在构建决策树时,可以简单地忽略缺失数据,即在计算增益时,仅考虑具有属性值的记录。

在这里插入图片描述
在这里插入图片描述

五、二分选值

在这里插入图片描述

六、决策树减枝

即让决策树的层数较小,高度较矮。因为如果决策树很高的话,最终在训练集上都能达到100%的纯度,但是对于测试集,就可能造成误差,产生过拟合,因此需要让决策树的层数较小,高度较矮。

  1. 预剪枝:在构建决策树的过程时,提前停止。

即指定决策树的深度,比如指定为3,则分到第三层之后就停止继续分层了。

或者指定min_sample,就是当样本小于50个的时候,就停止继续分枝。
在这里插入图片描述
为什么要进行预减枝?为了防止过拟合的风险。

  1. 后剪枝:决策树构建好后,然后才开始裁剪。
    在这里插入图片描述 因为叶子节点个数越多,越琐碎,则越容易造成过拟合。
    最终要使得上图的公式值最小。
    上面公式中的a值可以手工指定的:
    如果a较大,则叶子节点个数要少
    如果a较小,则叶子节点个数可以较多

七、随机森林

森林:多颗决策树就构造了一片森林。

随机森林:构造出来一片决策树,用一片决策树都完成决策的操作,每个决策树都单独执行决策的操作,最终的结果去所有决策树的众数。

随机: 由于样本可能有异常值,因此要进行随机的选择。一共有两重的随机性:

  1. 数据的选择随机性
    随机森去的样本是有放回的(就是可以有完全相同的样本),而且比例是随机的,都是在原始的训练集进行随机的选择。

  2. 特征选择的随机性

  3. Bootstraping有放回采样

  4. Bagging:有放回采样n个样本一共建立.分类器

决策树的参数:这些参数主要是觉得决策树怎么预减枝和后减枝的问题,防止过拟合的问题。

1、 criterion: 特征选取方法,可以是gini(基尼系数),entropy(信息增益),通常选择gini,即CART算法,如果选择后者,则是ID3和C4,.5

2、 splitter: 特征划分点选择方法,可以是best或random,前者是在特征的全部划分点中找到最优的划分点,后者是在随机选择的部分划分点找到局部最优的划分点,一般在样本量不大的时候,选择best,样本量过大,可以用random

3、 max_depth: 树的最大深度,默认可以不输入,那么不会限制子树的深度,一般在样本少特征也少的情况下,可以不做限制,但是样本过多或者特征过多的情况下,可以设定一个上限,一般取10~100

4、 min_samples_split:节点再划分所需最少样本数,如果节点上的样本树已经低于这个值,则不会再寻找最优的划分点进行划分,且以结点作为叶子节点,默认是2,如果样本过多的情况下,可以设定一个阈值,具体可根据业务需求和数据量来定

5、 min_samples_leaf: 叶子节点所需最少样本数,如果达不到这个阈值,则同一父节点的所有叶子节点均被剪枝,这是一个防止过拟合的参数,可以输入一个具体的值,或小于1的数(会根据样本量计算百分比)

6、 min_weight_fraction_leaf: 叶子节点所有样本权重和,如果低于阈值,则会和兄弟节点一起被剪枝,默认是0,就是不考虑权重问题。这个一般在样本类别偏差较大或有较多缺失值的情况下会考虑

7、 max_features: 划分考虑最大特征数,不输入则默认全部特征,可以选 log2N,sqrt(N),auto或者是小于1的浮点数(百分比)或整数(具体数量的特征)。如果特征特别多时如大于50,可以考虑选择auto来控制决策树的生成时间

8、 max_leaf_nodes:最大叶子节点数,防止过拟合,默认不限制,如果设定了阈值,那么会在阈值范围内得到最优的决策树,样本量过多时可以设定

9、min_impurity_decrease/min_impurity_split: 划分最需最小不纯度,前者是特征选择时低于就不考虑这个特征,后者是如果选取的最优特征划分后达不到这个阈值,则不再划分,节点变成叶子节点

10、class_weight: 类别权重,在样本有较大缺失值或类别偏差较大时可选,防止决策树向类别过大的样本倾斜。可设定或者balanced,后者会自动根据样本的数量分布计算权重,样本数少则权重高,与min_weight_fraction_leaf对应

11、presort: 是否排序,基本不用管

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:40:34  更:2022-04-24 09:43:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:32:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码