最后
面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
2. 决策树的优点
(1)推理过程容易理解,决策推理过程可以表示成If Then形式;
(2)推理过程完全依赖于属性变量的取值特点;
(3)可自动忽略目标变量没有贡献的属性变量,也为判断属性变量的重要性,减少变量的数目提供参考。
3. 决策树解决问题的一般方法
4. 决策树的3个步骤
-
如何确定每个分支节点,即选择特征
-
如何建立决策树,即决策树的生成
-
如何避免过拟合,即决策树的剪枝
5. 决策树的特点
-
叶子节点是结论
-
树的路径唯一确定了一个样例的判断过程
-
非叶子节点是特征
二、决策树建模与学习
==========
1. 什么是决策树
分类决策树选择器是树形结构,用于对样例分类,决策树的基本组成部分:决策结点(内部节点)、分支和叶子。
结点 – 内部节点: 特征和属性
– 叶子节点:分类
有向边 – 特征的不同取值
决策树中最上面的结点称为根结点。是整个决策树的开始。
每个分支是一个新的决策结点,或者是树的叶子。
每个决策结点代表一个问题或者决策.通常对应待分类对象的属性。
每个叶结点代表一种可能的分类结果
在沿着决策树从上到下的遍历过程中,在每个结点都有一个测试。对每个结点上问题的不同测试输出导致不同的分枝,最后会达到一个叶子结点。这一过程就是利用决策树进行分类的过程,利用若干个变量来判断属性的类别。
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. 理想的决策树
最后
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
大厂面试问深度,小厂面试问广度,如果有同学想进大厂深造一定要有一个方向精通的惊艳到面试官,还要平时遇到问题后思考一下问题的本质,找方法解决是一个方面,看到问题本质是另一个方面。还有大家一定要有目标,我在很久之前就想着以后一定要去大厂,然后默默努力,每天看一些大佬们的文章,总是觉得只有再学深入一点才有机会,所以才有恒心一直学下去。
3建树的问题:****倾向于特征多的,生成树容易过拟合,从而引入了IGR算法,他的选择标准是IGR
五、决策树的剪枝(Decision tree pruning)
===============================
1. 理想的决策树
最后
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
大厂面试问深度,小厂面试问广度,如果有同学想进大厂深造一定要有一个方向精通的惊艳到面试官,还要平时遇到问题后思考一下问题的本质,找方法解决是一个方面,看到问题本质是另一个方面。还有大家一定要有目标,我在很久之前就想着以后一定要去大厂,然后默默努力,每天看一些大佬们的文章,总是觉得只有再学深入一点才有机会,所以才有恒心一直学下去。