机器学习之adaboost

张玉宝 张玉宝     2022-09-04     172

关键词:

Adaboost是一种组合学习的提升算法,能将多个弱学习算法(甚至只比随机猜测好一点)组合起来,构成一个足够强大的学习模型。

组合学习

组合学习是将多个假说组合起来,并集成它们的预测。比如对于一个问题,我们可以生成20棵决策树,让它们对新样例的分类进行预测,最后通过投票决定最终的预测。这样可以有效的降低错误率。

提升

 提升是一种广泛使用的组合学习。首先解释加权训练集的概念。在这样的训练集中,每个样例都有一个权重w(不小于0)来表示一个样例的重要程度。提升算法开始于所有样例的权重均为1,从这样的训练集中产生了第一个假说H1,这个假说也许会对一些测试样例进行错误的分类,于是我们把这些样例挑选出来并增加它们的权重,然后把修改后的训练集提供给下一个假说H2进行训练。直到K个假说都产生之后,我们输出一个组合假说,它是这K个假说的加权多数函数,某个假说的权重大小取决于它在训练集上的表现。
 例如下图所示,我们通过增加被错误分类的样例的权重,可以使得下一个弱学习算法在错误分类样例上表现得更好。

AdaBoost

function AdaBoost(examples, L, K) returns a weighted hypothesis
    inputs: exmaples, a set of example for learning
            L, a learning algorithm
            K, the number of hypotheses
    local variable: w, a vector of weight
                    h, a vector of K hypotheses, initially 1/N
                    z, a vector of K hypothesis weight
    
    for k = 1 to K do
        h[k] = L(examples, w)
        error = 0
        for i = 1 to N do
            if h[k](x_i) != y_i then error = error+w[i]
        for i = 1 to N do
            if h[k](x_i) == y_i then w[i] = w[i]*error/(1-error)
        w = Normalize(w)
        z[k] = log(1-error)/error
    return (h, z)

机器学习之集成学习

1.概念梳理:AdaBoost:运行过程:训练数据中的每一个样本,并赋一个权重,这些权重值构成向量D,已开始这些权重值一样。第一次训练完,得到一个弱分类器,计算该分类器的错误率,然后调整每个样本的权重值,对同一个训... 查看详情

集成学习之boosting——adaboost原理

集成学习之Boosting——AdaBoost原理集成学习之Boosting——AdaBoost实现集成学习大致可分为两大类:Bagging和Boosting。Bagging一般使用强学习器,其个体学习器之间不存在强依赖关系,容易并行。Boosting则使用弱分类器,其个体学习器之... 查看详情

机器学习——集成学习之boosting

...blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1AdaBoostGBDTXgboost1.AdaBoostBoosting的本质实际上是一个加法模型,通过改变训练样本权重学习多个分类器并进行一些线性组合。而Adaboost就是加法模型+指数损失函数+前项分布算... 查看详情

集成学习之adaboost算法原理小结

...代表算法就是是boosting系列算法。在boosting系列算法中,Adaboost是最著名的算法之一。Adaboost既可以用作分类,也可以用作回归。本文就对Adaboost算法做一个总结。1.回顾boosting算 查看详情

集成学习之boosting——adaboost实现(代码片段)

AdaBoost的一般算法流程输入:训练数据集\(T=\left\(x_1,y_1),(x_2,y_2),\cdots(x_N,y_N)\right\\),\(y\in\left\-1,+1\right\\),基学习器\(G_m(x)\),训练轮数M初始化权值分布:\(w_i^(1)=\frac1N\:,\;\;\;\;i=1,2,3,\cdotsN\)form=1toM:(a 查看详情

集成学习之adaboost算法

1.回顾Boosting提升算法AdaBoost是典型的Boosting算法,属于Boosting家族的一员。在说AdaBoost之前,先说说Boosting提升算法。Boosting算法是将“弱学习算法“提升为“强学习算法”的过程,主要思想是“三个臭皮匠顶个诸葛... 查看详情

机器学习之回归模型-调用sklearn库求解线性回归(代码片段)

...a;线性、决策树、SVM、KNN;集成回归:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees常用的分类:线性、决策树、SVM、KNN,朴素贝叶斯;集成分类:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees常用... 查看详情

机器学习之参数估计

ProbabilityTheoryfocusoncomputingtheprobabilityofdataarisingfromaparametricmodelwithknownparameters.StatisticalInferenceflipsthisonitshead:wewillestimatetheprobabilityofparametersgivenaparametricmodel 查看详情

机器学习之概率统计基础,机器学习学习笔记----07

机器学习之概率统计基础文章目录机器学习之概率统计基础一、条件概率二、贝叶斯公式三、独立性注:本图片来源于《机器学习中的数学》一书一、条件概率在一个情况发生的情况下,另一个情况的概率二、贝叶斯公... 查看详情

rust机器学习之tch-rs(代码片段)

Rust机器学习之tch-rstch-rs是PyTorch接口的Rust绑定,可以认为tch-rs是Rust版的PyTorch。本文将带领大家学习如何用tch-rs搭建深度神经网络识别MNIST数据集中的手写数字。本文是“Rust替代Python进行机器学习”系列文章的第五篇,其... 查看详情

机器学习之occsvm模型

     介绍一下oneclassclassification以及用SVDD(supportvectordomaindescription)做oneclassclassification。oneclassclassification和多类classification的思路还是有很大差别。    classification问题一般都是2类及2类以上的,典型 查看详情

机器学习之roc曲线

机器学习之ROC曲线roc曲线全称受试者工作曲线,ROC曲线下面积就是AUC(Areaunderthecurve),AUC用来衡量二分类机器学习算法的性能,即泛化能力这里有几个概念,真阳性率,假阳性率,真阴性率,假阴性率,这四个率的产生是一个... 查看详情

机器学习之正则化

前言      以下内容是个人学习之后的感悟,如果有错误之处,还请多多包涵~  正则化一、过拟合     过拟合是一种现象。当我们提高在训练数据上的表现时,在测试数据上反而下... 查看详情

机器学习之理论篇—线性模型

机器学习之理论篇—线性模型2016-05-02 雷厉风行 机器学习与大数据算法线性模型是机器学习中的最基本模型,其形式简单、易于建模。线性回归模型虽然简单,但却非常的实用,许多非线性模型也都是建立在线性模型的... 查看详情

机器学习之学习路线

机器学习机器学习朴素贝叶斯(NBC) 决策树K-近邻算法回归K-均值聚类算法Apriori算法FP-growth算法主成分分析(PCA)奇异值分析(SVD)支持向量机logistic回归python实现明星专家系统http://9399369.blog.51cto.com/9389369/d-22/p-2本文出自“运维... 查看详情

机器学习之决策树(代码片段)

一、复习信息熵  为了解决特征选择问题,找出最优特征,先要介绍一些信息论里面的概念。   1、熵(entropy)        python3代码实现:defcalcShannonEnt(dataSet):‘‘‘计算香农熵:paramdataSet:数据集:return:计算结果... 查看详情

机器学习之概述(整体思维导图)

  利用三遍读书法学习机器学习这本书,下面展示的是第一遍读书后所绘的思维导图,工具是《幕布》:  第一遍读书主要是罗列,简单对比了每一种算法的特点及优缺点,在第二遍读书的时候再继续优化,敬请期待! 查看详情

机器学习之逻辑回归(logisticregression)

 """逻辑回归中的Sigmoid函数""" importnumpyasnp importmatplotlib.pyplotasplt   defsigmoid(t): return1/(1+np.exp(-t))   x=np.linspace(-10,10,500) y=sigmoid 查看详情