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的区别:1)bagging 的训练集是随机的,各训练集是独立的;而boosting训练集的选择不是独立的,每次选择的训练集都依赖于上一次学习的结果;

2) bagging的每个预测函数(即弱假设)没有权重,而Boosting根据每一次训练的训练误差得到该次预测函数的权重;

          3)bagging的每个分类器的训练样本是随机抽样构建,而Boosting会对上一次分类输出的结果进行采样,错误的样本会有更高的权重;

4)bagging的各个预测函数可以并行生成,而boosting的只能顺序生成。对于神经网络这样极为耗时的学习方法,Bagging可通过并行训练节省大量的时间开销。

  2)、3)的权重机制,体现了boosting“提升”的特性。

-与bagging的共同点:都可以通过使用for循环给estimator赋不同的分类器类型,以实现集成多种分类器,而不是单一的某一种(比如决策树)。

代表算法 Adaboost 和 Realboost。总的来说,Adaboost 简单好用,Realboost 准确

4、GBDT

  使用决策树作为基本分类器;梯度提升优化算法;

  重复选择一个表现一般的模型并且每次基于先前模型的表现进行调整;

  不同的是,AdaBoost是通过提升错分数据点的权重来定位模型的不足,而GradientBoosting是通过计算梯度(gradient)来定位模型的不足。因此相比AdaBoost,GradientBoosting可以使用更多种类的目标函数。

5.Stacking

在stacking(堆叠)方法中,每个单独分类器的输出会作为更高层分类器的输入,更高层分类器可以判断如何更好地合并这些来自低层的输出。

参考文章:http://blog.csdn.net/abcjennifer/article/details/8164315

python中的几种集成分类器的更多相关文章

  1. Python中的三种数据结构

    Python中,有3种内建的数据结构:列表.元组和字典.1.列表     list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目.列表中的项目.列表中的项目应该包括在方括号中,这 ...

  2. python中的三种输入方式

    python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...

  3. Python 中的几种矩阵乘法 np.dot, np.multiply, *【转】

    本文转载自:https://blog.csdn.net/u012609509/article/details/70230204 Python中的几种矩阵乘法1. 同线性代数中矩阵乘法的定义: np.d ...

  4. 简单谈谈Python中的几种常见的数据类型

    简单谈谈Python中的几种常见的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等 ...

  5. Python中的几种数据类型

    大体上把Python中的数据类型分为如下几类:   Number(数字) 包括int,long,float,complex String(字符串) 例如:hello,"hello" ...

  6. Python中的两种结构dict和set

    Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 假设要根据同学的名字查找对应的成绩 如果 ...

  7. Python中的7种可调用对象

    Python中有七种可调用对象,可调用对象可使用内置函数callable来检测 一.用户自定义的函数: 使用def语句或者lambda表达式创建的函数. 二.内置函数: 使用C语言实现的函数,如len ...

  8. Python中的几种矩阵乘法(转)

    一.  np.dot() 1.同线性代数中矩阵乘法的定义.np.dot(A, B)表示: 对二维矩阵,计算真正意义上的矩阵乘积. 对于一维矩阵,计算两者的内积. 2.代码 [code] import ...

  9. Python中的两种路径

    Java中有两种路径,一种是操作系统的路径path,另一种是类路径classpath. Python中也是如此,一种是操作系统环境变量中的path,另一种是PYTHONPATH. 当import xx ...

随机推荐

  1. 【转】MFC中调试过程中查看输出信息 -- 不错

    原文网址:http://blog.sina.com.cn/s/blog_4e24d9c501014o39.html 笔记&&方便查阅. ~~~~~~~~~~~~~~~~~~~~~~~~ ...

  2. Linux学习笔记3——Linux中常用系统管理命令

    stat 显示指定文件的相关信息,比ls命令显示内容更多 who 显示在线登录用户 hostname 显示主机名称 uname显示系统信息 top 显示当前系统中耗费资源最多的进程 ps 显示瞬间的进 ...

  3. Linux学习笔记2——Linux中常用文件目录操作命令

    ls 显示文件和目录列表 -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 mkdir 创建目录 -p 父目录不存在情况下先生成父目录 cd 切换目录 touch 生成一个空文件 e ...

  4. 常见sql的error解决方法

    1.sqlserver 2008 login failed: error 18456 这是很可能是因为你没有选择sql and windows登录的模式导致sql server的用户登录失败 解决方法 ...

  5. hdoj 2647 Reward【反向拓扑排序】

    Reward Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  6. 355. Design Twitter

    二刷尝试了别的办法,用MAP代表关注列表. 然后不初始化,但是只要有用户被使用,而他又不在MAP里,就把他加进去,然后让他关注自己.. 但是这样做超时了. 问题在于这个题解法太多,有很多不同的情况. ...

  7. maven常用插件配置

    1.maven-jar-plugin插件 <!-- 排除资源文件中的properties文件,不需要打到jar中,后面通过assembly插件打包到conf目录中 --><plugi ...

  8. FZU 2104 (13.11.28)

    Problem 2104 Floor problem Accept: 376    Submit: 433 Time Limit: 1000 mSec    Memory Limit : 32768 ...

  9. Python基础 1----Python语言基础和Python环境准备与安装

    引导语: 人们学习Python是因为他们爱这门语言,因为他们追寻美,如果我雇用一个Python程序员,那么他们的技术将非常的棒 1 Python是一门跨平台的语言,是一种面向对象的动态编程语言 发布时 ...

  10. 吴柄锡 github----MHA helper

    https://github.com/wubx http://www.cnblogs.com/kissdb/p/4009620.html