【八股文-机器学习】决策树和随机森林
决策树
类似于二叉树,通过是否两个开关分别进入下个层级在进行这个操作,最终实现多个条件问题的分类结果。
决策树的关键在于如何将手头的数据定义出一系列问题来区分。
除叶子节点(彩色终端节点)外,所有节点都有5个部分:
- 基于某个特征的一个值对数据进行的提问,每个提问都有一个真或假的答案可以分裂节点。根据答案,数据点相应地向下移动。
- gini:节点的Gini不纯度。当我们沿着树向下移动时,平均加权基尼不纯度会减少。
- samples:节点中的观测数据数量。
- value:每个类中的样本数。例如,根节点中有2个样本属于类0,有4个样本属于类1。
- class:该节点中大多数点的分类。在叶节点中,即是对节点中所有样本的预测。
一个能记住训练数据的非常灵活的模型与不能学习训练数据的不灵活模型之间的平衡称为偏差-方差权衡(bias-variance-tradeoff)
一颗决策树由于我们不限制深度,往往都能拟合训练数据,具有高方差和高偏差特点,过拟合,但这往往并不是我们想要的最优结果。
随机森林
随机森林是由许多决策树组成的模型。这个模型不是简单地平均所有树(我们可以称之为“森林”)的预测,而是使用了两个关键概念,名字中的随机二字也是由此而来:
在构建树时对训练数据点进行随机抽样
这意味着一些样本将在一棵树中被多次使用。背后的想法是在不同样本上训练每棵树,尽管每棵树相对于特定训练数据集可能具有高方差,但总体而言,整个森林将具有较低的方差,同时不以增加偏差为代价。在测试时,通过平均每个决策树的预测来进行预测。这种在不同的自助抽样数据子集上训练单个学习器,然后对预测进行平均的过程称为bagging,是bootstrap aggregating的缩写。分割节点时考虑特征的随机子集
这意味着如果有16个特征,则在每个树中的每个节点处,只考虑4个随机特征来拆分节点。