2. 决策树与if-then规则
从根节点开始对实例的每个特征进行测试,根据结果将其分支,递归的测试分配,直到叶子节点,从而构造了决策树。
决策树分类器的实质就是一系列的if-then规则
路径 — 规则
内部节点 — 判定规则
叶子节点 — 决策结论
****(1)性质:****互斥且完备(即:每个实例都是有且仅有一条路径或规则覆盖。)
(2)特点:
特征空间被划分为不相交的单元或区域。
条件概率分布: 在每个单元中定义的一个类的概率分布。
每个叶节点的条件概率都趋向于具有较高概率的一类。
当决策树进行分类时,该节点的实例被强制归入具有高条件概率的类别。
(3)例子:
(每个矩形是一个单元,假设只有正类和负类,判断条件概率大的就属于该类)
3. 如何学习一个决策树
对于数据集有n个特征,yi对应每个样例的类标签,N为容量
学习目标:构造一个决策树模型,通过训练实例对样本进行正确的分类
实质:从训练数据中归纳出一系列的if-then规则
目的: 构建与训练数据不一致程度较低、泛化能力较好的决策树。对未知数据有较好的预测,且训练精确度好
损失函数: (通常)正则化极大似然函数,使损失函数最小。
从所有候选中选择最优决策树是n-p难问题。在现实中,决策树学习通常采用一种启发式方法,即局部优化。
方法: 选取当前条件下的最优特征作为划分规则,即局部最优特征。主要有自顶向下,贪婪的搜索方法
算法步骤:
(1)建立根节点(选择最佳特征)
(2)对于每个分支确定下一个特征,从而对节点进行划分
(3)确立下一个特征,递归的方法构造决策树
决策树学习算法包括:
(1)特征选择
(2)决策树生成
(3)决策树修剪(避免过拟合)
决策树: 一个条件概率分布。不同的决策树对应不同复杂度的概率模型。
决策树生成: 模型的局部选择(考虑局部优化)
决策树剪枝: 模型的全局选择(考虑全局优化)
三、特征选择
======
1. 什么是特征选择
特征选择: 选择能够对训练数据进行分类的特征。决定使用哪个特征来划分特征空间。如果一个特征分类的结果与随机分类的结果相似,那么这个特征就不能进行分类。
我们如何选择最好的特性? 特征选择准则:信息增益
哪一个特征最好? 它会生成最小损失的树; 启发式:选择产生“最纯粹”节点的特性
策略: 选择能够获得最大信息增益的特性
2. 熵
引入‘熵’的概念,看下图哪一个信息量更大?
左边图信息量更大,因为它有混合的,不确定性更改可以帮助我们更好的分类
熵越大,不确定性越大。
例子:在数据集中,我们有四个特性和两个目标类。在15个实例中,9个分类为是,其余为否有一些方法可以选择特性。如:
熵:用于测量随机变量的不确定性。熵越大,不确定性越大。
当只有两个特征,变化为二项分布
3. 条件熵
如果是多个特征 --> 引入条件熵 类似于联合概率密度,又叫经验熵或经验条件熵。
4. 信息增益
有了熵和经验熵 --> 信息增益
表示:以某特征划分数据集前后的熵的差值
在训练集D上特征A的信息增益g(D,A)表示为D的熵H(D)和条件熵H(D|A)的差值。
因此,特征选择的方法就是要使用信息增益的IG3算法,选择最小信息增益的特征。
5. ID3算法
使用IG来确定节点特征。
定义变量:
D: 训练数据 |D|:样例的总个数
K: 总共的类别,Ck分别表示每个类,|Ck|表示每个类对应的个数
假设特征A有n个值,则将D划分为{D1,D2,… Dn}子集,每个子集中有不同类Dik
算法表示:
输入:训练集D和特征A
输出:在训练集D上,特征A的信息增益g(D, A)
-
计算训练集D的熵H(D)
-
计算特征A的条件熵 H(D,A)
-
计算信息增益g(D, A) = H(D) - H(D,A)
例题:
6. 信息增益比
由于信息增益偏向于特征取值多的特征,具有倾向性,因此为了对其修正提出了:信息增益比。
总结: IG(信息增益)ID3算法
IGR(信息增益比)C4.5算法
四、决策树生成(Decision tree generation)
=================================
1. ID3算法
非正式********算法:
确定训练集上信息增益最高的特征。
以该特性为根,为该特性的每个值创建一个分支。
对于每个分支,使用该分支分类的训练集子集重复该过程。
何时停止?IG特别小或没有特征可选
正式算法:
输入:训练集D,特征集合A,阈值ε
输出:决策树
-
如果数据集D中属于同一类(结果相同)那么就不用划分了,直接就是单节点数;
-
如果没有特征,那么表格只有一列是类别,就建立单节点树,节点就取占比最大的;
-
除上述情况的其他情况:计算每个特征对应的IG(信息增益),并选择最大IG 的特征Ag
-
如果Ag的信息增益小于ε,那么就建立单节点,将样例中个数最多的分类作为类名,并停止。
-
如果Ag的信息增益大于ε,分支分成了n个子集,根节点确定,再建立分支。如果分支是同一类,那么形成叶子节点,否则划分成子树;
-
按照上述算法递归划分子树。
关键步骤: 3,4,5
****停止条件:****没有特征,小与ε
例题:
总结: ID3算法的基本思想是,以信息熵为度量,用于决策树节点的属性选择,每次优先选取信息量最多的属性,亦即能使熵值变为最小的属性,以构造一颗熵值下降最快的决策树,到叶子节点处的熵值为0。此时,每个叶子节点对应的实例集中的实例属于同一类。
****ID3建树的问题:****倾向于特征多的,生成树容易过拟合,从而引入了IGR算法,他的选择标准是IGR
五、决策树的剪枝(Decision tree pruning)
===============================
1. 理想的决策树
(1)叶子结点数最少;
(2)叶子结点深度最小;
(3)叶子结点数最少且叶子结点深度最小。
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
结尾
正式学习前端大概 3 年多了,很早就想整理这个书单了,因为常常会有朋友问,前端该如何学习,学习前端该看哪些书,我就讲讲我学习的道路中看的一些书,虽然整理的书不多,但是每一本都是那种看一本就秒不绝口的感觉。
以下大部分是我看过的,或者说身边的人推荐的书籍,每一本我都有些相关的推荐语,如果你有看到更好的书欢迎推荐呀。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
6837)]
[外链图片转存中…(img-VqhOGBby-1711113356837)]
[外链图片转存中…(img-gWMynVuu-1711113356838)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-n77uL7KW-1711113356838)]
结尾
正式学习前端大概 3 年多了,很早就想整理这个书单了,因为常常会有朋友问,前端该如何学习,学习前端该看哪些书,我就讲讲我学习的道路中看的一些书,虽然整理的书不多,但是每一本都是那种看一本就秒不绝口的感觉。
以下大部分是我看过的,或者说身边的人推荐的书籍,每一本我都有些相关的推荐语,如果你有看到更好的书欢迎推荐呀。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】