机器学习——决策树

机器学习——决策树

  • 理解
  • 决策树优缺点
  • 决策树概况
  • ID3和C4.5的区别
  • 树模型对离散特征怎么处理的
  • 决策树出现过拟合的原因及解决办法
  • 如何对决策树进行剪枝
  • 决策树不需要归一化处理
  • 决策树与逻辑回归的区别
  • 决策树的损失函数

理解

决策树是一种分类方法,像一棵树一样进入不同的分支,然后直到叶子节点得到分类结果。那么如何进入不同的分支?这就是最重要的内容,涉及到节点(特征)的划分标准,有三种:最大信息增益、最大信息增益率、基尼系数。而这三种不同的划分标准就对应了三种典型决策树:ID3(最大信息增益)、C4.5(最大信息增益率)、CART(基尼系数)

决策树优缺点

优点:

  • 决策树易于理解和实现。

  • 对于决策树,数据的准备往往是简单或者是不必要的。其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性

  • 能够同时处理数据型和常规型属性。

  • 在相对短的时间内能够对大型数据源做出可行且效果良好的结果

  • 对缺失值不敏感

  • 可以处理不相关特征数据

  • 效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度
    缺点:

  • 对连续性的字段比较难预测

  • 对有时间顺序的数据,需要很多预处理的工作

  • 当类别太多时,错误可能就会增加的比较快

  • 在处理特征关联性比较强的数据时表现得不是太好

决策树概况

决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。
决策树有两大优点

  1. 决策树模型可读性好,具有描述性,有助于人工分析
  2. 效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度
    决策树涉及到节点(特征)的划分标准,有三种:最大信息增益、最大信息增益率,基尼系数
  • 信息增益:指的是使用某一个属性a进行划分后,所带来的纯度(信息熵用来度量样本集合的纯度)提高的大小。一般而言,信息增益越大,意味着使用属性a来进行划分所获得的纯度提升越大,但信息增益对取值较多的属性有所偏好。
  • 信息增益率解决了特征偏好的问题
  • 但是不论是信息增益还是信息增益率,存在的问题涉及对数运算,计算量大,为了解决这个问题,可以采用基尼系数作为节点划分的标准

ID3和C4.5的区别

最大的区别是划分标准的不同:ID3采用信息增益ID4.5采用的是信息增益率
C4.5继承了ID3的优点,并在以下几个方面对ID3算法进行了改进:

  1. 信息增益率来选择属性,克服了用信息增益选择属性是偏向选择多的属性的不足
  2. 在树的构造过程中进行剪枝
  3. 能够对连续的属性进行离散化处理
  4. 能够对不完整的数据进行处理

树模型对离散特征怎么处理的

树模型是要寻找最佳分裂点,对于离散特征,树模型会评估每个离散值的信息增益,将信息增益最大的数值作为分裂点,因此,树模型不需要对离散特征进行事先one-hot处理,否则会使特征维度增大且稀疏,不仅会增加模型的计算量,而且会损失数据的信息量造成模型的效果不佳,以及过拟合的风险。也不需要进行归一化处理。

决策树出现过拟合的原因及解决办法

原因:

  • 在决策树构建的过程中,对决策树的绳子没有进行合理的限制
  • 样本中有一些噪声数据,没有对噪声数据进行有效的剔除
    解决办法:
  • 选择合理的参数进行剪枝,可以分为预剪枝和后剪枝,我们一般采用后剪枝的方法
  • 利用K-folds交叉验证,将训练集分为K份,然后进行K此交叉验证
  • 减少特征,计算每一次特征和响应变量的相关性,常见的皮尔逊相关系数,将相关性较小的变量剔除

如何对决策树进行剪枝

剪枝是防止决策树过拟合的方法。
剪枝的策略
剪枝分为预剪枝和后剪枝两种,预剪枝是在构建决策树时抑制它的生长,后剪枝是决策树生长完全后再对叶子节点进行修剪
预剪枝

  • 设置一个树的最大高度或者为树设置一个最大节点数,达到这个值即停止生长

  • 对每个叶子节点的样本数设置最小值吗,生长时叶子节点样本数不能小于这个值

  • 判断每次生长对系数性能是否有益
    后剪枝

  • 错误率降低剪枝

  • 悲观剪枝

  • 代价复杂度剪枝
    预剪枝和后剪枝的优缺点比较

  • 时间成本方面,预剪枝在训练过程中即进行剪枝,后剪枝要在决策树完全生长后自底向上逐一考察。显然,后剪枝训练时间更长。预剪枝更适合解决大规模问题。

  • 剪枝的效果上,预剪枝的常用方法本质上是基于贪心的思想,但贪心法却可能导致欠拟合,后剪枝的欠拟合风险很小,泛化性能更高

  • 另外,预剪枝的有些方法使用了阈值,如何设置一个合理的阈值也是比较复杂的

  • 后剪枝错误率降低剪枝的方法比较直观,从下至上遍历所有非叶子节点的子树,每次把子树剪枝(所有数据归到该节点,将数据中最多的类设为结果),与之前的树在验证集上的准确率进行比较,如果有提高,则剪枝,否则不剪,直到所有非叶子节点被遍历完

决策树不需要归一化处理

概率模型不需要归一化,因为他们 不关心变量的值,而是关心变量的分布和变量之间的条件概率决策树是一种概率模型,数值缩放,不影响分裂点位置。所以一般不对其进行归一化处理

决策树与逻辑回归的区别

  • 对于拥有缺失值的数据,决策树可以应对,而逻辑回归需要挖掘人员预先对缺失数据进行处理
  • 逻辑回归对数据整体结构的分析优于决策树,而决策树对局部结构的分析优于逻辑回归
  • 逻辑回归擅长分析线性关系,而决策树对线性关系的把握较差。线性关系在实践中有很多优点:简洁,易理解,可以在一定程度上防止对数据的过度拟合
  • 逻辑回归对极值比较敏感,容易受极端值的影响,而决策树在这方面表现较好
  • 执行速度上:当数据量很大的时候,逻辑回归的执行速度非常慢,而决策树的运行速度明显快于逻辑回归。

决策树的损失函数

决策树T的叶结点个数为 ∣ T ∣ |T| T,t是树T的叶结点,该叶结点有 N t N_t Nt个样本点,其中k类的样本点有 N t k N_{tk} Ntk个, k = 1 , 2 , . . . , K , H t ( T ) k=1,2,...,K, H_t(T) k=1,2,...,K,Ht(T)为叶节点t上的经验熵, α > = 0 \alpha >= 0 α>=0为参数,则决策树学习的损失函数可以定义为:
L α ( T ) = ∑ t = 1 ∣ T ∣ N t H t ( T ) + α ∣ T ∣ L_{\alpha}(T)=\sum_{t=1}^{|T|} N_{t} H_{t}(T)+\alpha|T| Lα(T)=t=1TNtHt(T)+αT
其中经验熵为:
H t ( T ) = − ∑ k N t k N t log ⁡ N t k N t H_{t}(T)=-\sum_{k} \frac{N_{t k}}{N_{t}} \log \frac{N_{t k}}{N_{t}} Ht(T)=kNtNtklogNtNtk

公式中 H t ( T ) H_t(T) Ht(T)可以理解为这个叶子节点的熵。如果把决策树一直划分下去,叶子节点的熵应该为0,只有一个类。但是如果使用一些剪枝规则,每个节点中仍然可以有熵值,也就是可以继续划分
N t N_t Nt是这个节点中的样本个数,可以看作这个节点的权重。节点中样本数越多,这个值就越小。
后面一项是对整颗树的复杂度的惩罚项,结点数越多,越复杂。相当于一个正则项,也可以理解为先验概率:较小的树有较大的先验概率。

你可能感兴趣的:(深度学习,深度学习)