水莹儿 发表于 2015-12-3 04:03:20

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可通过并行训练节省大量的时间开销。
  -与bagging的共同点:都可以通过使用for循环给estimator赋不同的分类器类型,以实现集成多种分类器,而不是单一的某一种(比如决策树)。
  代表算法 Adaboost 和 Realboost。总的来说,Adaboost 简单好用,Realboost 准确
  4.Stacking
  在stacking(堆叠)方法中,每个单独分类器的输出会作为更高层分类器的输入,更高层分类器可以判断如何更好地合并这些来自低层的输出。
  
  参考文章:http://blog.csdn.net/abcjennifer/article/details/8164315
页: [1]
查看完整版本: python中的几种集成分类器