Bagging思想
Bagging(bootstrap aggregating)思想就是从总体样本当中随机取一部分样本进行训练,通过多次这样的结果,进行投票获取平均值作为结果输出,这就极大可能的避免了不好的样本数据,从而提高准确度。因为有些是不好的样本,相当于噪声,模型学入噪声后会使准确度不高。
举个例子:
假设有1000个样本,如果按照决策树的思维,是直接把这1000个样本拿来训练,但现在不一样,先抽取200个样本来进行训练,假如噪声点是200个样本以外的样本点,就很有效的避开了。重复以上操作,提高模型输出的平均值。
随机森林
RandomForest(随机森林)是一种基于树模型的Bagging的优化版本,一棵树的生成肯定还是不如多棵树,因此就有了随机森林,解决决策树泛化能力弱的特点。(可以理解成三个臭皮匠顶过诸葛亮)
而同一批数据,用同样的算法只能产生一棵树,这时Bagging策略可以帮助我们产生不同的数据集。Bagging策略:从样本集(假设样本集N个数据点)中重采样选出n个样本(有放回的采样,样本数据点个数仍然不变为N),在所有样本上,对这n个样本建立分类器(ID3\C4.5\CART\SVM\LOGISTIC),重复以上两步m次,获得m个分类器,最后根据这m个分类器的投票结果,决定数据属于哪一类。
总的来说就是:
,建立多颗这样的决策树,然后通过这几课决策树来投票,决定数据属于哪一类(投票机制有一票否决制、少数服从多数、加权多数)
优点:
1、在当前的很多数据集上,相对其他算法有着很大的优势,表现良好;
2、它能够处理很高维度(feature很多)的数据,并且不用做特征选择(因为特征子集是随机选择的);
3、在训练完后,它能够给出哪些feature比较重要
4、训练速度快,容易做成并行化方法(训练时树与树之间是相互独立的);
5、在训练过程中,能够检测到feature间的互相影响;
6、对于不平衡的数据集来说,它可以平衡误差
7、如果有很大一部分的特征遗失,仍可以维持准确度。
缺点:
1、随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合;
2、对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。