首页 > 代码库 > python中的几种集成分类器
python中的几种集成分类器
from sklearn import ensemble
集成分类器(ensemble):
1.bagging(ensemble.bagging.BaggingClassifier)
对随机选取的子样本集分别建立某种基本分类器,然后投票决定最终的分类结果
2.RandomForest(ensemble.RandomForestClassifier)
对随机选取的子样本集分别建立m个CART(Classifier and Regression Tree),然后投票决定最终的分类结果
Random在此处的意义:
1)Bootstrap 中的随机选择子样本集
2)Random subspace 的算法从属性中随机选择k个属性,每个树节点分裂时从这随机的k个属性中,选择最优的
3.Boosting(ensemble.weight_boosting)
在选择分类超平面时给样本加了一个权值,使得loss function尽量考虑那些分错类的样本。(i.e.分错类的样本weight 大)
-boosting 重采样的不是样本,而是样本的分布。最后的分类结果是几个弱分类器的线性加权和。注意这几个弱分类器都是一种base classifier类别。
-与bagging的区别:bagging 的训练集是随机的,各训练集是独立的;而boosting训练集的选择不是独立的,每次选择的训练集都依赖于上一次学习的结果;
bagging的每个预测函数(即弱假设)没有权重,而Boosting根据每一次训练的训练误差得到该次预测函数的权重;
bagging的各个预测函数可以并行生成,而boosting的只能顺序生成。对于神经网络这样极为耗时的学习方法,Bagging可通过并行训练节省大量的时间开销。
代表算法 Adaboost 和 Realboost。总的来说,Adaboost 简单好用,Realboost 准确
参考文章:http://blog.csdn.net/abcjennifer/article/details/8164315
python中的几种集成分类器