集合算法
集合算法是一种元算法,它支持少数服从多数的原则,保存在sklearn.ensemble
包中
1、 自助聚合算法:Bagging
自助聚合算法大名叫:Bootstrap Aggregating
它采取有放回方式的取样:
一个拥有m个数据的数据集,随机抽取一个数据放入一个新的数据集k中,然后再将这个抽取的数据放回m数据集中,再随机抽取一个数据再放入k中,就这样依次循环n次,得到n个数据的数据集k
【注意】:在该数据集中,很有可能存在重复的数据,因为是有放回的抽样。
【优点】:它可以降低数据集的噪声敏感
【缺点】:会增加计算量
2、 正向激励算法:boosting
正向激励算法是采取赋予权重的方法进行。
在具有m个数据的数据集中,将每一个数据赋予一个对应的权重,再将带权重的全部数据进行训练模型,然后取出那些预测结果有误的数据集,重新分配对应的权重,再进行训练,重复B次,训练出B个模模型
【对比】:boosting比Bagging的优点在于,它可以对错误的数据进行一个加工处理的操作,加强了错误模型的训练过程,但是我觉得boosting的运算也是十分复杂的。
3、随机森林
随机森林是在Bagging的基础上进行的一个进化。它保存在RandomForestClassifier
和 RandomForestRegressor
中。
训练的时候要关注俩个特殊的数据:
t:构建决策树的个数
f:单科决策树的特征数
【算法思想】:
1、放回抽取:首先对单颗数的构建,也是采用Bagging的思想,在m个数据中选取含有n个数据的数据集
2、不放回抽取:取出f个特征数据
3、将1和2的操作汇总,形成一颗决策树,再将这一颗决策树的思路循环t次,就得到了t颗决策树。
【为何称为随机】:
因为如果不是随机取样的话,会导致耦合度过高,数据与数据之间有强关联的情况出现,导致一种倾向性的出现,不利于我们进行后续的模型训练
4、ExtraTrees
他是随机森林的进一步优化操作,由于随机森林是采用ID3或者CART算法找到一个最优的特征来进行分裂,但是这样子可能会出现过拟合现象。
于是改进的ExtraTrees算法就是在特征中随机找寻特征进行分裂,避免了过拟合现象。