随机:随机从数据集中采样以训练模型中的每颗决策树。
森林:模型中包含很多决策树。
在集成学习中,主要分为bagging算法和boosting算法。
Bagging的基本思想为对训练集有放回地抽取训练样例,从而为每一个基本分类器都构造出一个跟训练集大小相等但各不相同的训练集,从而训练出不同的基分类器,最后将各个基分类器进行融合,得到最终分类器。
Boosting的基本思想是一个顺序执行的过程,每个后续模型都会尝试纠正之前模型的错误。后续的模型都依赖于之前的模型。
随机森林(RandomForest,RF)属于集成学习中的Bagging类型算法(Bootstrap Aggregation)即引导聚合类算法。由于这类算法不专注于解决困难样本,所以模型的Performance往往会受限。在集成学习中的另一类算法Boosting即可解决这种缺点。RF相对于Bagging只是对其中一些细节做了自己的规定和设计。
【弱分类器】首先,RF使用了CART决策树作为弱学习器。换句话说,其实我们只是将使用CART决策树作为弱分类器的Bagging方法称为随机森林。
【随机性】同时,在生成每棵树的时候,每个树选取的特征都仅仅是随机选出的少数特征,一般默认取特征总数m的开方。而一般的CART树则会是选择全部的特征进行建模。因此RF的随机选取行、列使得RF不易出现过拟合。
【样本量】相对于一般的Bagging算法,RF会采集和训练集样本数N一样个数的样本。
【特点】由于随机性,对于降低模型的方差很有作用,故随机森林一般不需要额外做剪枝,即可以取得较好的泛化能力和抗过拟合能力。
大致流程:
1.预设模型的超参数
几个树?分几层?
2.随机采样,训练每个决策树
DATASET[N*D] => data subse[n*d]
N,n表示样本数量N>>n
D,d表示特征数量D>>d
3.输入待测样本到每个树中,再将每个树的结果整合
Regression:求均值
Classification:求众数MODE
PROS:
1.模型随机性强,不易overfit
抗噪性强,表示对异常点outlier不敏感
2.处理高维数据相对更快
3.树状结构,模型可解释度高
可以告诉你每个特征的重要性
CONS:
模型往往过于General,不具备正确处理过于困难的样本的能力。
模型起点高,但天花板低。
【所以应该更加关注那些难以预测正确的问题,从而使模型整体性能提高】