EL之AdaBoost:集成学习之AdaBoost算法的简介、应用、经典案例之详细攻略

目录

AdaBoost算法的简介

1、理解AdaBoost算法

1.1、从前向逐步递增角度来看理解AdaBoost:要找到最优的f很难→每次递增。

1.2、前向逐步递增的损失函数—L2Boosting

2、AdaBoost M1算法证明过程

AdaBoost算法的经典案例

1、预测马疝病是否死亡的数据集


AdaBoost算法的简介

Adaptive Boosting或称为AdaBoost,是多种学习算法的融合。Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。
        算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器融合起来,作为最后的决策分类器。使用adaboost分类器可以排除一些不必要的训练数据特征,并放在关键的训练数据上面。

AdaBoost是最常用的算法。它可用于回归或者分类算法。相比其他机器学习算法,它克服了过拟合的问题,通常对异常值和噪声数据敏感。为了创建一个强大的复合学习器,AdaBoost使用了多次迭代。因此,它又被称为“Adaptive Boosting”。通过迭代添加弱学习器,AdaBoost创建了一个强学习器。一个新的弱学习器加到实体上,并且调整加权向量,作为对前一轮中错误分类的样例的回应。得到的结果,是一个比弱分类器有更高准确性的分类器。
        AdaBoost有助于将弱阈值的分类器提升为强分类器。上面的图像描述了AdaBoost的执行,只用了简单易于理解的代码在一个文件中就实现了。这个函数包含一个弱分类器和boosting组件。弱分类器在一维的数据中尝试去寻找最理想的阈值来将数据分离为两类。boosting组件迭代调用分类器,经过每一步分类,它改变了错误分类示例的权重。因此,创建了一个级联的弱分类器,它的行为就像一个强分类器。
        目前,对Adaboost算法的研究以及应用大多集中于分类问题,同时近年也出现了一些在回归问题上的应用。Adaboost系列主要解决了:两类问题、多类单标签问题、多类多标签问题、大类单标签问题和回归问题。它用全部的训练样本进行学习。
以上主要参考:《2019中国人工智能发展报告》—清华大学中国工程院知识智能中心—201912

1、理解AdaBoost算法

1.1、从前向逐步递增角度来看理解AdaBoost:要找到最优的f很难→每次递增。


1.2、前向逐步递增的损失函数—L2Boosting

2、AdaBoost M1算法证明过程

(1)、证明过程

AdaBoost算法的经典案例

相关文章:机器学习实战之AdaBoost算法

1、预测马疝病是否死亡的数据集

#自适应加载数据
def loadDataSet(filename):#创建数据集矩阵,标签向量dataMat=[];labelMat=[]#获取特征数目(包括最后一类标签)#readline():读取文件的一行#readlines:读取整个文件所有行numFeat=len(open(filename).readline().split('\t'))#打开文件fr=open(filename)#遍历文本每一行for line in fr.readlines():lineArr=[]curLine=line.strip().split('\t')for i in range(numFeat-1):lineArr.append(float(curLine[i]))#数据矩阵dataMat.append(lineArr)#标签向量labelMat.append(float(curLine[-1]))return dataMat,labelMat#自适应加载数据
def loadDataSet(filename):#创建数据集矩阵,标签向量dataMat=[];labelMat=[]#获取特征数目(包括最后一类标签)#readline():读取文件的一行#readlines:读取整个文件所有行numFeat=len(open(filename).readline().split('\t'))#打开文件fr=open(filename)#遍历文本每一行for line in fr.readlines():lineArr=[]curLine=line.strip().split('\t')for i in range(numFeat-1):lineArr.append(float(curLine[i]))#数据矩阵dataMat.append(lineArr)#标签向量labelMat.append(float(curLine[-1]))return dataMat,labelMat#训练和测试分类器
def classify():#利用训练集训练分类器datArr,labelArr=loadDataSet('horseColicTraining2.txt')#得到训练好的分类器classifierArray=adaBoostTrainDS(datArr,labelArr,10)#利用测试集测试分类器的分类效果testArr,testLabelArr=loadDataSet('horseClicTest2.txt')prediction=adaClassify(testArr,classifierArray)#输出错误率num=shape(mat(labelArr))[1]errArr=mat(ones((num,1)))error=errArr[prediction!=mat(testLabelArr).T].sum()print("the errorRate is: %.2f",errorRate=float(error)/float((num)))

EL之AdaBoost:集成学习之AdaBoost算法的简介、应用、经典案例之详细攻略相关推荐

  1. AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用)、常用算法、经典案例之详细攻略(建议收藏)

    AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用).常用算法.经典案例之详细攻略(建议收藏) 目录 NLP是什么? 1.NLP前置技术解析 2.python中NLP技术相关库 3.NLP案例 ...

  2. ML之kNN:k最近邻kNN算法的简介、应用、经典案例之详细攻略

    ML之kNN:k最近邻kNN算法的简介.应用.经典案例之详细攻略 目录 kNN算法的简介 1.kNN思路过程 1.1.k的意义 1.2.kNN求最近距离案例解释原理-通过实际案例,探究kNN思路过程 ...

  3. DL之ANN/DNN: 人工神经网络ANN/DNN深度神经网络算法的简介、应用、经典案例之详细攻略

    DL之ANN/DNN: 人工神经网络ANN/DNN深度神经网络算法的简介.应用.经典案例之详细攻略 相关文章 DL:深度学习(神经网络)的简介.基础知识(神经元/感知机.训练策略.预测原理).算法分类 ...

  4. ML之SVM:SVM算法的简介、应用、经典案例之详细攻略

    ML之SVM:SVM算法的简介.应用.经典案例之详细攻略 目录 SVM算法的简介 1.SVM模型分类-线性可分.线性.非线性 2.SVM的决策边界 3.SVM中的核函数 4.SVM算法推导 1.1.S ...

  5. AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用)、常用算法、经典案例之详细攻略(建议收藏)daiding

    AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用).常用算法.经典案例之详细攻略(建议收藏) 目录 NLP是什么? 1.NLP前置技术解析 2.python中NLP技术相关库 3.NLP案例 ...

  6. Python编程学习:让函数更加灵活的*args和**kwargs(设计不同数量参数的函数)的简介、使用方法、经典案例之详细攻略

    Python编程学习:让函数更加灵活的*args和**kwargs(设计不同数量参数的函数)的简介.使用方法.经典案例之详细攻略 目录 *args和**kwargs(设计不同数量的参数函数)的简介 1 ...

  7. Python语言学习之图表可视化:python语言中可视化工具包的简介、安装、使用方法、经典案例之详细攻略

    Python语言学习之图表可视化:python语言中可视化工具包的简介.安装.使用方法.经典案例之详细攻略 目录 python语言中可视化工具包的简介 python语言中可视化工具包的安装 pytho ...

  8. ML之DT之CART:分类与回归树CART算法的简介、应用、经典案例之详细攻略

    ML之DT之CART:分类与回归树CART算法的简介.应用.经典案例之详细攻略 目录 分类与回归树CART算法简介 1.CART原理-比较ID3.C4.5 2.CART算法描述 CART算法的案经典案 ...

  9. ML之NB:朴素贝叶斯Naive Bayesian算法的简介、应用、经典案例之详细攻略

    ML之NB:朴素贝叶斯Naive Bayesian算法的简介.应用.经典案例之详细攻略 目录 朴素贝叶斯Naive Bayesian算法的简介 1.朴素贝叶斯计算流程表述 2.朴素贝叶斯的优缺点 2. ...

最新文章

  1. PTA 基础编程题目集 7-33 有理数加法 C语言
  2. java数组随机排序_JAVA 生成随机数数组,并排序输出
  3. 在虚拟机中安装LINUX
  4. 说说你对http、https、http2.0的理解【前端每日一题-25】
  5. 掌握jQuery插件开发,这篇文章就够了
  6. $* $@ $# $? $$ $! $0 $_
  7. form表单中根据值判断是否disabled_Java 0基础入门 (Html表单、表单元素)
  8. Git---安装步骤
  9. oracle+口令+加密算法,Oracle Password Hash
  10. C# 操作offfice权限问题
  11. android任意函数绘制_图片和图形 | 可绘制对象概览
  12. MyBatis源码阅读(十) --- 一级缓存、二级缓存工作原理
  13. 龙星电脑横机制版软件_龙星制版软件下载 龙星电脑横机是什么系统
  14. 易到实际控制人温晓东成老赖:与贾跃亭曾是盟友 如今反目
  15. 几个Python小案例, 爱上Python编程!
  16. 大数据训练营-hadoop篇-02
  17. Markdown安装/破解/下载
  18. 图片裁切器Cropper.js的使用
  19. 2021年遥感类SCI期刊中科院分区排名与影响因子汇总
  20. 做表情包就能卖1亿刀,这事儿放在国内我是不信的

热门文章

  1. 图的dfs非递归_如何理解恶心的递归
  2. 如何编写oracle存储过程
  3. 65.shell特殊符号与和cut,sort,wc,uniq,tee,tr,split命令
  4. kotlin for android----------MVP模式下(OKHttp和 Retrofit+RxJava)网络请求的两种实现方式...
  5. Mysql索引,用户及授权(root密码恢复)
  6. Redis之父退出开源项目维护:人生苦短不想上班
  7. 收藏 | 阿里云Redis开发规范
  8. 选择技术方向都要考虑哪些因素
  9. 【mysql优化专题】本专题终极总结(共12篇)
  10. 多线程:多线程优缺点、应用场景