决策树 Decision Tree

决策树(Decision Tree)

  决策树可以看成为一个 if-then 规则的集合。决策树方法建立了一个根据数据中属性的实际值决策的模型。决策树用来解决分类和回归问题。
  机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。从数据产生决策树的机器学习技术叫做决策树学习, 通俗说就是决策树。(来自《维基百科》)
  决策树的工作方式是以一种贪婪(greedy)的方式迭代式地将数据分成不同的子集。下图是一个决策树的迭代过程:
决策树 Decision Tree_第1张图片

优缺点

  优点:

  • 列表内容
  • 可解释强
  • 学习能力强, 高效地处理非线性问题
  • 应用范围广, 处理分类, 回归, 排序问题
  • 数据准备代价低”

      缺点:

  • 容易过拟合
  • 训练代价相对高
  • 特征分析相对难

使用方法

单棵树停止生长的条件?

  • 节点分裂时的最小样本数
  • 最大深度
  • 最多叶子节点数
  • loss满足约束条件”

树(CART)的剪枝

  为什么要剪枝?
  当生产的树对训练数据拟合得很好, 但是对验证集/测试集/未知数据的拟合的不好的时候, 该树过拟合。(过拟合的原因在于学习时, 过多地考虑如何提高训练数据的效果, 从而构建了过于复杂的决策树.)
  pruning来自决策树的剪枝?

  树的剪枝分为两种:
  1)预剪枝:就是生成树时的停止条件
  2)后剪枝:就是对生成的树, 进行剪枝,即去掉一些子节点/子树。”

如何防止树生长成畸形树(即树不平衡) ?

  在生成树的过程中, 加入树不平衡的约束条件. 这种约束条件可以是用户自定义的. 例如对样本集中分到某个节点, 而另一个节点的样本很少的情况进行惩罚.

各种决策树

  分类树;回归树;分类和回归树(CART) Classification and regression tree。
  ID3算法,Iterative Dichotomiser 3
  C4.5算法,即C4.5 algorithm
  C5.0算法,即C5.0 algorithm”
  卡方自动交互检测(CHAID),即Chi-squared Automatic Interaction Detection
  决策残端 Decision stump

  Random Forest
  Multivariate Adaptive Regression Splines (MARS)
  Gradient Boosting Machines (GBM)

  回归树(regression tree)的目的是最小化所有子集中的 MSE(均方误差)或 MAE(平均绝对误差);而分类树(classification tree)则是对数据进行分割,以使得所得到的子集的熵或基尼不纯度(Gini impurity)最小。

决策树也可以做得很深

  如果有同学看教科书上介绍决策树,会有一个说法就是决策树要减枝,决策树如果不减枝效果不好。
  还有教科书会告诉决策树不能超过五层,超过五层的决策树效果不好。这个结论和神经网络结论一样,神经网络不能超过三层也是因为当时数据量不大,决策树不能超过五层也是因为上个世纪数据量不够大,二叉树决策树如果深度是N的话,复杂度大概是2的N次方,所以不超过五层复杂度也就是三十多。如果数据量达到一百万的时候,决策树能达到十几二十层的规模,如果数据量到了一百亿的时候决策树可能要到三十几层。 现在,我们强调更深的决策树,这可能和教科书讲的相矛盾。
  矛盾的原因是现在整个场景下数据量变大,所以要做更深的决策树。当然,我们也不一定在所有的场景里都有很大数据量,如果遇到了数据量小的场景,我们也要知道决策树是要做浅的。最根本来说,就是看有多少数据,能写出多复杂的模型。

你可能感兴趣的:(机器学习具体算法,经典机器学习算法)