学习决策树,随机森林的笔记

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的进行分类,剪枝的原理是什么?

  • 分类 *
  1. CART分类采用的二叉树的分类方式,不会像ID3或者C4.5去找到一个最优的特征,然后将这个特征所有的离散变量进行划分
  2. CART会去寻找”基尼指数"最小的特征点进行划分,具体的说,是找到最优的特征,然后找到某一个最优的特征值进行划分,使得Gini(D,A)达到最小。
  3. 算法停止的时候,是样本个数小于阈值,或者基尼指数小于阈值,或者没有更多的特征。
  • 剪枝 *
  1. 前提条件:对于一个节点t和这个节点的二叉树子节点Tt,我们能够计算出T,Tt考虑了“复杂度”的损失函数。 我们总能够找到一个α,使得T,Tt的考虑了损失函数的α相同。 α的意义是权衡模型的拟合程度与模型的复杂度。当T,Tt的损失函数相同时,我们更倾向选择简单的决策树。

  2. 我们对整棵树T0,考虑每一个节点,得到了最小的α。将α对应的分支减掉,作为决策树T1.

  3. 再去看第二小的α,将对应的分支减掉,得到决策树T2.如此得到许多T3,T4,Tn许多决策树

  4. 利用交叉验证法,利用测试数据集,去检验哪一棵子树靠谱,选择最优的子树。

Q8:CART原理说的太特么啰嗦了,简单点说呢

CART分为生成树和剪枝。

生成树只会生成二叉树,划分二叉树的标准是,去寻找”某个特征,某个数据“使得信息不确定(基尼系数)最小。

剪枝是考虑模型的拟合程度和模型的复杂度,根据复杂度不同,获得了多颗子树。
利用交叉验证法,找到最优的子树。

Q9:随机森林,extra-tree的原理是什么?

  1. 利用bootstrap,随机抽取样本,构建多颗决策树,这里一般构建样本个数颗决策树.

    • 原因是可以达到偏差和方差的平衡
  2. 对于随机森林中的每颗决策树,随机选择n个特征.使用CART方式分裂, 在sklearn中,这里的n一般去特征数开平方.

  • 原因是特征太多,使得树之间缺少独立性,特征太少,使得无法预测.
  1. 对于extra-tree,在最优的特征的中,随机选择一个特征进行分裂.

Q10: 随机森林的随机,是哪两重随机?

  1. bootstrap抽取样本
  2. 随机选择选择特征

Q11: 可视化决策树过程?

学习决策树,随机森林的笔记_第1张图片
image.png

你可能感兴趣的:(学习决策树,随机森林的笔记)