Q1: 决策树是如何找到最优的分类特征的?
A: 通过计算"信息增益","信息增益比",数值大的特征,是用作划分的特征
Q2: 信息增益是如何计算的?
A: 计算出数据集的"熵"和使用了某一个特征的"条件熵". 再用"熵"减去"条件熵"得到
Q3: 如何理解熵?
A: 熵表示离散随机变量的不确定性.
也就是说,熵的大小,取决于随机变量发生的概率.
Q4:如何理解条件熵
A:当某个特征确定后,求和(该特征的某个特征值对应的数据集的熵 * 该特征的某个特征值出现的概率
Q5:找到特征后,从特征的哪一个点划分?
- 对于ID3方式
重点在于,找到最优特征Ag后,将数据集根据每一个Ag的可能值,划分子集.将划分的数据子集中,类别数最多的实例作为该节点的分类. - 对于C4.5也是如此,只不过此处用信息增益比来划分
Q6:在sklearn中,决策时使用的是什么算法?
- 使用的CART,不可能是ID3或者C4.5.
- 具体的说,使用的比较特殊的CART,因为可以用到"熵"进行分类
- 不能够用到ID3和C4.5,因为在sklearn中始终是二叉树
Q7: CART的进行分类,剪枝的原理是什么?
- 分类 *
- CART分类采用的二叉树的分类方式,不会像ID3或者C4.5去找到一个最优的特征,然后将这个特征所有的离散变量进行划分
- CART会去寻找”基尼指数"最小的特征点进行划分,具体的说,是找到最优的特征,然后找到某一个最优的特征值进行划分,使得Gini(D,A)达到最小。
- 算法停止的时候,是样本个数小于阈值,或者基尼指数小于阈值,或者没有更多的特征。
- 剪枝 *
-
前提条件:对于一个节点t和这个节点的二叉树子节点Tt,我们能够计算出T,Tt考虑了“复杂度”的损失函数。 我们总能够找到一个α,使得T,Tt的考虑了损失函数的α相同。 α的意义是权衡模型的拟合程度与模型的复杂度。当T,Tt的损失函数相同时,我们更倾向选择简单的决策树。
-
我们对整棵树T0,考虑每一个节点,得到了最小的α。将α对应的分支减掉,作为决策树T1.
-
再去看第二小的α,将对应的分支减掉,得到决策树T2.如此得到许多T3,T4,Tn许多决策树
-
利用交叉验证法,利用测试数据集,去检验哪一棵子树靠谱,选择最优的子树。
Q8:CART原理说的太特么啰嗦了,简单点说呢
CART分为生成树和剪枝。
生成树只会生成二叉树,划分二叉树的标准是,去寻找”某个特征,某个数据“使得信息不确定(基尼系数)最小。
剪枝是考虑模型的拟合程度和模型的复杂度,根据复杂度不同,获得了多颗子树。
利用交叉验证法,找到最优的子树。
Q9:随机森林,extra-tree的原理是什么?
-
利用bootstrap,随机抽取样本,构建多颗决策树,这里一般构建样本个数颗决策树.
- 原因是可以达到偏差和方差的平衡
-
对于随机森林中的每颗决策树,随机选择n个特征.使用CART方式分裂, 在sklearn中,这里的n一般去特征数开平方.
- 原因是特征太多,使得树之间缺少独立性,特征太少,使得无法预测.
- 对于extra-tree,在最优的特征的中,随机选择一个特征进行分裂.
Q10: 随机森林的随机,是哪两重随机?
- bootstrap抽取样本
- 随机选择选择特征
Q11: 可视化决策树过程?
image.png
网友评论