Adaboost原理传送门

AdaBoost在我看理论课程的时候,以分类为例子来讲解的,谁知道sklearn里面基本上都有classifier和regressor两种。这个倒是我没想到的!!!

from sklearn.ensemble import AdaBoostRegressor

参数介绍:

    base_estimator : object, optional (default=DecisionTreeRegressor)。基估计器,理论上可以选择任何回归器,但是这个地方需要支持样本加权重,as well as proper classes_ and n_classes_ attributes.(这个地方不过会翻译)。常用的是CART回归树和神经网络,默认CART回归树,即AdaBoostRegressor默认使用CART回归树DecisionTreeRegressor。

    n_estimators : integer, optional (default=50)。基估计器的个数。

    learning_rate : float, optional (default=1.)。即每个弱学习器的权重缩减系数νν,在原理篇的正则化章节我们也讲到了,加上了正则化项,我们的强学习器的迭代公式为

ν的取值范围为0<ν≤1。对于同样的训练集拟合效果,较小的ν意味着我们需要更多的弱学习器的迭代次数。通常我们用步长和迭代最大次数一起来决定算法的拟合效果。所以这两个参数n_estimators和learning_rate要一起调参。一般来说,可以从一个小一点的ν开始调参,默认是1。

    loss : {‘linear’, ‘square’, ‘exponential’}, optional (default=’linear’)。Adaboost.R2算法需要用到。有线性‘linear’, 平方‘square’和指数 ‘exponential’三种选择, 默认是线性,一般使用线性就足够了,除非你怀疑这个参数导致拟合程度不好。这个值的意义,它对应了我们对第k个弱分类器的中第i个样本的误差的处理,即:

如果是线性误差,则

如果是平方误差,则

如果是指数误差,则

,Ek为训练集上的最大误差Ek=max|yi−Gk(xi)|i=1,2...m

    random_state : int, RandomState instance or None, optional (default=None)

属性介绍:

    estimators_ : list of classifiers

    estimator_weights_ : array of floats

    estimator_errors_ : array of floats

    feature_importances_ : array of shape = [n_features]

方法介绍:

    

from sklearn.ensemble import AdaBoostClassifier

参数介绍:

    base_estimator : object, optional (default=DecisionTreeClassifier)。基估计器,理论上可以选择任何分类器,但是这个地方需要支持样本加权重,as well as proper classes_ and n_classes_ attributes.(这个地方不过会翻译)。常用的是CART决策树和神经网络,默认CART决策树,即AdaBoostClassifier默认使用CART决策树DecisionTreeClassifier。

    n_estimators : integer, optional (default=50)。基估计器的个数。

    learning_rate : float, optional (default=1.)。通过这个参数缩减每个分类器的贡献,learning_raten_estimators 两个参数之间存在权衡。

    algorithm : {‘SAMME’, ‘SAMME.R’}, optional (default=’SAMME.R’)。如果'SAMME.R'则使用SAMME.R  (Real Boosting) 算法。 base_estimator必须支持类概率的计算。 如果'SAMME'则使用SAMME (discrete boosting) 算法。 SAMME.R算法通常收敛速度高于SAMME,通过较少的升压迭代实现较低的测试误差。(老哥们有好的翻译理解记得评论下!)

如果我们选择的AdaBoostClassifier算法是SAMME.R,则我们的弱分类学习器还需要支持概率预测,也就是在scikit-learn中弱分类学习器对应的预测方法除了predict还需要有predict_proba。

两者的主要区别是弱学习器权重的度量,SAMME使用了和我们的原理篇里二元分类Adaboost算法的扩展,即用对样本集分类效果作为弱学习器权重,而SAMME.R使用了对样本集分类的预测概率大小来作为弱学习器权重。由于SAMME.R使用了概率度量的连续值,迭代一般比SAMME快,因此AdaBoostClassifier的默认算法algorithm的值也是SAMME.R。我们一般使用默认的SAMME.R就够了,但是要注意的是使用了SAMME.R, 则弱分类学习器参数base_estimator必须限制使用支持概率预测的分类器。SAMME算法则没有这个限制。

    random_state : int, RandomState instance or None, optional (default=None)。如果int,random_state是随机数生成器使用的种子; 如果RandomState的实例,random_state是随机数生成器; 如果None,则随机数生成器是由np.random使用的RandomState实例。

属性介绍:

    estimators_ : list of classifiers   子估计器

    classes_ : array of shape = [n_classes]  类别的标签信息

    n_classes_ : int      类别的数量

    estimator_weights_ : array of floats    每个基估计器的权重

    estimator_errors_ : array of floats      每个基估计器的错误率

    feature_importances_ : array of shape = [n_features] 如果基估计器支持的话

“具体调参”参考博客

    调参还是分为两部分:AdaBoost框架调参和弱分类器的调参。

  框架参数调节:

    框架参数就是值上述介绍的那些需要动态调节观察效果的参数。

  弱分类器参数调节:

    这里我们仅仅讨论默认的决策树弱学习器的参数。即CART分类树DecisionTreeClassifier和CART回归树DecisionTreeRegressor。

AdaBoost Classifier和Regressor的更多相关文章

  1. 机器学习经典算法之AdaBoost

    一.引言 在数据挖掘中,分类算法可以说是核心算法,其中 AdaBoost 算法与随机森林算法一样都属于分类算法中的集成算法. /*请尊重作者劳动成果,转载请标明原文链接:*/ /* https://w ...

  2. 壁虎书7 Ensemble Learning and Random Forests

    if you aggregate the predictions of a group of predictors,you will often get better predictions than ...

  3. scikit-learn:class and function reference(看看你究竟掌握了多少。。)

    http://scikit-learn.org/stable/modules/classes.html#module-sklearn.decomposition Reference This is t ...

  4. 『计算机视觉』Mask-RCNN_推断网络其四:FPN和ROIAlign的耦合

    一.模块概述 上节的最后,我们进行了如下操作获取了有限的proposal, # [IMAGES_PER_GPU, num_rois, (y1, x1, y2, x2)] # IMAGES_PER_GP ...

  5. Spark ML Pipeline简介

    Spark ML Pipeline基于DataFrame构建了一套High-level API,我们可以使用MLPipeline构建机器学习应用,它能够将一个机器学习应用的多个处理过程组织起来,通过在 ...

  6. 转:TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比

    http://geek.csdn.net/news/detail/138968 Google近日发布了TensorFlow 1.0候选版,这第一个稳定版将是深度学习框架发展中的里程碑的一步.自Tens ...

  7. sklearn常见分类器(二分类模板)

    # -*- coding: utf-8 -*- import pandas as pd import matplotlib matplotlib.rcParams['font.sans-serif'] ...

  8. [Tensorflow] 使用 Mask_RCNN 完成目标检测与实例分割,同时输出每个区域的 Feature Map

    Mask_RCNN-2.0 网页链接:https://github.com/matterport/Mask_RCNN/releases/tag/v2.0 Mask_RCNN-master(matter ...

  9. MatterTrack Route Of Network Traffic :: Matter

    Python 1.1 基础 while语句 字符串边缘填充 列出文件夹中的指定文件类型 All Combinations For A List Of Objects Apply Operations ...

随机推荐

  1. Word 2010 小技巧篇

    1.选择文本的妙招

  2. css修改select默认样式

    先来看看效果图: css: <style media="screen"> .select_demo, .select_list { width: 400px; heig ...

  3. Linux上的ftp服务器vsftpd之配置满天飞--设置匿名用户访问(不弹出用户名密码框)以及其他用户可正常上传

    一.问题背景 没事谁折腾这鬼玩意哦...还不是因为bug. 我们的应用,用户头像是存在ftp上的.之前的ftp服务器是一台windows,我们后台服务器程序收到用户上传头像的请求时,会用一个ROOT/ ...

  4. 【CF873F】Forbidden Indices 后缀自动机

    [CF873F]Forbidden Indices 题意:给你一个串s,其中一些位置是危险的.定义一个子串的出现次数为:它的所有出现位置中,不是危险位置的个数.求s的所有子串中,长度*出现次数的最大值 ...

  5. Java 构造函数(抽象类中的构造函数) 和 加载

    博客分类: 面向对象设计的原则 与 概念   1. Java 的构造函数 与初始化块: a. 抽象类的构造函数 若果在父类中(也就是抽象类)中显示的写了有参数的构造函数,在子类是就必须写一个构造函数来 ...

  6. Nginx配置认证登录

    本配置实现Nginx认证登录以免重要信息暴露在公网 日志收集ELK展示工具kibana免费版不支持密码验证,需要设置Nginx反向代理然后关闭kibana默认端口5601使用Nginx端口登录进行用户 ...

  7. cp命令取消提示的方法

    Linux默认cp命令带参数-i如果有重复的文件会提示覆盖 查看cp别名 在大量复制的时候这个提示不友好,在脚本写复制命令也无法使用交互式输入 解决办法 1,修改别名 vi ~/.bashrc 注释掉 ...

  8. logstash实战tcp插件

    vim /etc/logstash/conf.d/tcp.conf input{ tcp{ type => "tcp" port => "6666" ...

  9. Docker 学习应用篇之三: Docker的简单实用

    安装完Docker之后,我们就可以简单的使用Docker,来体会Docker的用处. 首先看下Docker的常用命令,都是我在实用Docker的时候用到的命令: docker常用命令: $ docke ...

  10. windows10配置tensorflow深度学习环境(GPU版)各种坑

    我们配置一个tensorflow-gpu版的深度学习环境 windows10 64 python3.5 vs2017(需要C++部分) cuda9.0 cudnn7.1 GeForce GTX1060 ...