随机森林(Random Forest)是一种集成学习方法
,由Leo Breiman和Adele Cutler在2001年提出。
它通过构建多个决策树
并将它们的预测结果结合起来
,以提高预测准确性和防止过拟合
。随机森林结合了两种技术:Bagging(Bootstrap Aggregating)和随机特征选择。
随机森林的构建步骤:
- 自助采样(Bootstrap Sampling):从原始训练集中通过
有放回
抽样得到一个新样本集,用于训练单个决策树
。这个过程重复进行,创建多个决策树。
- 随机特征选择:在每个决策树的节点分裂过程中,从所有可能的特征中
随机
选择一个子集,然后从中选择最佳分割特征
。这增加了决策树之间的差异性。 - 决策树构建:使用上述过程创建的
子样本集
和随机特征子集
来构建决策树,通常允许树生长到最大深度而不进行剪枝。 - 预测:
- 分类问题:每个决策树对新样本进行分类,然后采用
多数表决法
确定最终分类结果。 - 回归问题:每个决策树给出一个预测值,最终结果是
所有决策树预测值的平均值。
随机森林涉及的公式:
基尼不纯度 (Gini Impurity)
- : 表示数据集(D)的
基尼不纯度。
- : 数据集中
类别的总数。
- : 类别(i)在数据集(D)中
所占的比例。
熵 (Entropy)
- : 数据集(D)的
熵
。 - : 数据集中
类别的总数。
- : 类别(i)在数据集(D)中
所占的比例。
信息增益 (Information Gain)
- : 属性 在数据集 上的
信息增益。
- : 数据集 的
熵
。 - : 正在
考虑的属性。
- : 根据属性 的值
分割后的子数据集。
- : 属性 的
可能取值之一
。 - : 子数据集 的
样本数。
- : 数据集 的
样本总数。
Gini指数 (Gini Index)
- : 属性 在数据集 上的
Gini指数
。 - : 数据集 的
基尼不纯度。
- : 根据属性 的值
分割后的子数据集。
- : 属性 的
可能取值之一
。 - : 子数据集 的
样本数。
- : 数据集 的
样本总数。
随机森林的预测公式
对于分类任务,随机森林的预测公式为:
- : 对输入特征向量 的
最终预测类别。
- :
找出使括号内表达式最大
的类别 。 - : 随机森林中决策树的数量。
- : 第 棵决策树对输入 的
预测。
- : 如果第 棵决策树的预测类别为 ,则该函数返回1;否则,返回0。
对于回归任务,预测公式为:
- : 对输入特征向量 的
最终预测数值。
- : 随机森林中决策树的数量。
- : 第 棵决策树对输入 的
预测。
总结
随机森林通过集成多个决策树来提高预测的稳定性和准确性
,其中每棵树在不同的数据子集和特征子集上训练,最终通过投票或平均的方法进行预测。