决策树(基础)

决策树结构

结构:根节点,非叶节点,分支,叶节点。

种类:分类树,回归树

优点:速度快,准确性高、易理解、可以处理连续和种类字段、不需要任何领域知识和参数假设、适合高维数据

缺点:对于各类别样本不一致的数据,信息增益偏向于更多那些数值的特征,容易过拟合、忽略属性之间的相关性。

决策树的优缺点:

优点:

决策树易于理解和实现。人们在通过解释后都有能力去理解决策树所表达的意义。

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

能够同时处理数据型和常规型属性。其他技术往往要求数据属性单一。

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

对缺失值不敏感。

可以处理不相关的特征数据。

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

缺点:

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

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

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

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

决策树的划分标准

最大信息增益、最大信息增益率、基尼指数。

信息增益是指用某一个属性进行划分后,所带来的纯度提高的大小。一般而言,信息增益越大,意味着使用属性a来进行划分获得的“纯度提升”越大。但信息增益对可取值较多的属性有所偏好。

而信息增益率则解决了特征偏好问题。

但不论是信息增益还是信息增益率,存在的问题是涉及对数运算,计算量大,为了解决这个问题。可以采用基尼系数作为节点划分标准。

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

树模型是要寻找最佳分裂点,对于离散特征,树模型会评估每个离散值的信息增益,将信息增益最大的数值作为分裂点,因此,树模型不需要对离散特征实现one-hot处理,否则会使特征维度增大且稀疏,不仅会增加模型的计算量,而且会损失数据的信息量导致模型的效果不佳。

树模型出现过拟合的原因以及解决办法

原因:

在决策树构建的过程中,对决策树的生长没有进行合理的限制(剪枝);

样本中有一些噪声数据,没有对噪声数据进行有效的剔除;

解决办法:

选择合理的参数进行剪枝,可以分为预剪枝和后剪枝,我们一般采用后剪枝。

减少特征,计算每一个特征和响应变量的相关性(皮尔逊相关系数),将相关性较小的变量剔除。

如何对决策树进行剪枝?

剪枝是防止决策树过拟合的方法。

剪枝可以分为预剪枝和后剪枝两种。预剪枝是在构建决策树时抑制他的生长,后剪枝是决策树生长完全后再对叶子节点进行修剪。

预剪枝:

  • 设置一格树的最大深度 / 高度,或者为树设置一个最大节点数,达到这个值即停止生长。
  • 对每个叶子节点的样本数设置最小值,生长时叶子节点样本数不能小于这个值。
  • 判断每次生长对系统性能是否有益。

后剪枝:

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

预剪枝和后剪枝的优缺点比较:

  • 时间成本方面,预剪枝在训练过程中即进行剪枝,后剪枝要在决策树完全生长后自底向上逐一考察。显然,后剪枝训练时间更长。预剪枝更适合解决大规模问题。
  • 剪枝的效果上,预剪枝的常用方法本质上是基于贪心的思想,但贪心法却可能导致欠拟合,后剪枝的欠拟合风险很小,泛化性能更高。
  • 另外,预剪枝的有些方法使用了阈值,如何设置一个合理的阈值也是一项挑战。

决策树需要进行归一化处理吗?

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

决策树与逻辑回归的区别

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

决策树如何处理样本缺失问题?

link

  • 如何在属性值缺失的情况下进行划分属性的选择?(比如“色泽”这个属性有的样本在该属性上的值是缺失的,那么该如何计算“色泽”的信息增益?)
  • 给定划分属性,若该样本在该属性上的值是缺失的,那么该如何对这个样本进行划分?(即到底把这个样本划分到哪个节点里?)

对于第一个问题,首先找出在该属性上无缺失值的样本子集,(算出权重r),利用这个没有缺失的样本子集来算信息增益,最后算出的信息增益再乘以刚刚的权重。这个值就是最后这个属性的信息增益。

对于第二个问题,若样本x在划分属性a上的取值位置,则将x同时划入所有子节点,只不过此时要调整样本x的权重值,rv * w。直观地看,其实就是让同一个样本以不同的概率划入到不同的子节点中去。

如果测试样本属性也有缺失值怎么办?

  • 如果有专门处理缺失值的分支,那就走这个分支。
  • 用论文提到的方法来确定属性a的最有可能取值,然后走相应分支。
  • 从属性a最常用的分支走
  • 同时探查所有分支,并组合他们的结果来得到类别对应的概率(取概率最大的类别)
  • 将最有可能的类别赋给该样本。

你可能感兴趣的:(算法工程师秋招复习,决策树,机器学习,sklearn)