Random Forest:
主要运用到的方法是bagging,采用Bootstrap的随机有放回的抽样,抽样出N份数据集,训练出N个决策树。然后根据N个决策树输出的结果决定最终结果(离散型的输出:取最多的类别,连续型的输出:取平均数),是一种集成学习
下面引用的是谢益辉博士关于Bootstrap (和 Jackknife)基本思想的论述
一般情况下,总体永远都无法知道,我们能利用的只有样本,现在的问题是,样本该怎样利用呢?Bootstrap的奥义也就是:既然样本是抽出来的,那我何不从样本中再抽样(Resample)?Jackknife的奥义在于:既然样本是抽出来的,那我在作估计、推断的时候“扔掉”几个样本点看看效果如何?既然人们要质疑估计的稳定性,那么我们就用样本的样本去证明吧。
随机森林的优势:
- 容易理解和解释
- 不需要太多的数据预处理工作
- 隐含地创造了多个联合特征,并能够解决非线性问题
- 随机森林模型不容易过拟合
- 自带out-of-bag (oob)错误评估功能
- 并行化容易实现
随机森林的劣势:
- 不适合小样本,只适合大样本
- 精度较低
- 适合决策边界是矩形的,不适合对角线型的
GBDT:
原理:
通过采用加法模型(即基函数的线性组合),以及不断减小训练过程产生的残差来达到将数据分类或者回归的算法。通过多轮迭代,每轮迭代产生一个弱分类器,每个分类器在上一轮分类器的残差基础上进行训练。对弱分类器的要求一般是足够简单,并且是低方差和高偏差的。一般选择cart tree且树的深度不会很深。
训练过程:
模型可以描述为:
Fm(x)=∑m=1MT(x;θm)Fm(x)=∑m=1MT(x;θm)
一共训练M轮,每轮产出一个弱分类器 T(x;θ