机器学习实战笔记-7-AdaBoost元算法
AdaBoost(Adaptive boosting)元算法
元算法:将不同分类器组合起来的结果,也叫集成方法。
AdaBoost优点:泛化错误率,易编码,可应用在大部分分类器,无参数调整;缺点:对离群点敏感;适用于:数值型和标称型。
自举汇聚法(Bootstrap aggregating,
bagging方法):从原始数据集中随机选择1个样本,然后随机选择另一个样本替换这个样本。对原始数据集中进行S次这样的操作,分别得到S个新数据集。某个学习算法分别作用于新数据集得到S个分类器。用S个分类器进行分类得到的投票结果中最多的类别作为最终的分类结果。(bagging中各分类器权重是相等的。)Boosting:boosting通过集中关注被已有分类器错分的那些数据获得新的分类器。其中分类器权重不相等,对应分类器在上一代迭代中的成功度\(\alpha\)。
每个样本的权重的向量D初始化:全为1/m
在原数据集上训练出一个弱分类器并计算其错误率\(\varepsilon_{1}\);
原数据集中分对的样本权重降低,分错的样本权重升高,计算累计加权的估计结果。
\[\ \alpha = \frac{1}{2}\ln{(\frac{1 - \varepsilon_{i}}{\varepsilon_{i}})}
\]\[D_{i}^{\text{new}} = \left\{ \begin{matrix} \frac{D_{i}^{\text{old}}e^{-
\]
\frac{D_{i}{\text{old}}e{\alpha}}{Sum(D)},\ \ if\ \mathbf{x}_{i}\text{
is\ devided\ wrongly} \ \end{matrix} \right.$$
- 重复b-c共?次,得到累计加权的估计结果,其符号即表示最终的分类结果。
建立弱分类器的伪代码:
将最小错误率minError设为$+ \infty$
对数据集中的每一个特征(第一层循环):
对每个步长(第二层循环):
对每个不等号(第三层循环):
建立一棵单层决策树并利用加权数据集对他进行测试
如果错误率低于minError,则将当前单层决策树设为最佳单层决策树
返回最佳单层决策树
AdaBoost算法的伪代码:
对每次迭代:
找到最佳的单层决策树,将其加入到单层决策树数组
计算$\alpha$,计算新的样本权重向量D
**更新累计类别估计值**
如果错误率等于0.0,退出循环
机器学习实战笔记-7-AdaBoost元算法的更多相关文章
- 机器学习实战笔记7(Adaboost)
1:简单概念描写叙述 Adaboost是一种弱学习算法到强学习算法,这里的弱和强学习算法,指的当然都是分类器,首先我们须要简介几个概念. 1:弱学习器:在二分情况下弱分类器的错误率会低于50%. 事实 ...
- 机器学习实战笔记(1)——k-近邻算法
机器学习实战笔记(1) 1. 写在前面 近来感觉机器学习,深度学习神马的是越来越火了,从AlphaGo到Master,所谓的人工智能越来越NB,而我又是一个热爱新潮事物的人,于是也来凑个热闹学习学习. ...
- 机器学习实战笔记-11-Apriori与FP-Growth算法
Apriori算法 优点:易编码实现:缺点:大数据集上较慢:适用于:数值型或标称型数据. 关联分析:寻找频繁项集(经常出现在一起的物品的集合)或关联规则(两种物品之间的关联关系). 概念:支持度:数据 ...
- 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习笔记,这次是第7章 - 利用AdaBoost元算法提高分类性能. 核心思想 在使用某个特定的算法是, ...
- 【转载】 机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能
原文地址: https://www.cnblogs.com/steven-yang/p/5686473.html ------------------------------------------- ...
- 机器学习实战笔记-k-近邻算法
机器学习实战笔记-k-近邻算法 目录 1. k-近邻算法概述 2. 示例:使用k-近邻算法改进约会网站的配对效果 3. 示例:手写识别系统 4. 小结 本章介绍了<机器学习实战>这本书中的 ...
- 机器学习技法-AdaBoost元算法
课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要~ 一.Adaptive Boosting 的动机 通过组合多个弱分类器(hy ...
- 在Titanic数据集上应用AdaBoost元算法
一.AdaBoost 元算法的基本原理 AdaBoost是adaptive boosting的缩写,就是自适应boosting.元算法是对于其他算法进行组合的一种方式. 而boosting是在从原始数 ...
- 《机器学习实战》基于朴素贝叶斯分类算法构建文本分类器的Python实现
============================================================================================ <机器学 ...
- 使用 AdaBoost 元算法提高分类器性能
前言 有人认为 AdaBoost 是最好的监督学习的方式. 某种程度上因为它是元算法,也就是说它会是几种分类器的组合.这就好比对于一个问题能够咨询多个 "专家" 的意见了. 组合的 ...
随机推荐
- Codeforces Round #503 (by SIS, Div. 2) C. Elections (暴力+贪心)
[题目描述] Elections are coming. You know the number of voters and the number of parties — n and m respe ...
- mui实现分页上拉加载更多 下拉刷新数据的简单实现 移动端下拉上拉
空下来把mui上拉加载更多,下拉刷新数据做了一个简单的实现,希望可以帮助到需要的朋友 demo项目的结构 <!DOCTYPE html> <html> <head> ...
- python 安装opencv及问题解决
正常安装模式 pip install opencv-python==3.4.5.20 pip install opencv-contrib-python==3.4.5.20 -i http://pyp ...
- noscript
<noscript> <article id="noscript" class="error info_panel"> <head ...
- git 操作遇到的问题与解决方法
一.使用git在本地创建一个项目的过程,Git 上传本地文件到github $ makdir ~/hello-world //创建一个项目hello-world $ cd ~/hello-world ...
- CSS3 Transform实例
移动translate <!doctype html> <html> <head> <meta charset="utf-8"> & ...
- $LCT$维护子树信息学习笔记
\(LCT\)维护子树信息学习笔记 昨天\(FDF\)好题分享投了 \([ZJOI2018]\)历史 这题. 然后我顺势学学这个姿势. 结果调了一年...于是写个笔记记录一下. 基本原理 比较显然地, ...
- python开发之virtualenv与virtualenvwrapper
在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难. 此时,我们需要对于不同的工程使用 ...
- 封装 pyinstaller -F -i b.ico excel.py
安装pywin32,可以参考<怎么给python安装pywin32模块?> 一定要注意对应的python版本,否则不能安装. 5怎么给python安装pywin32模块? 2 用命 ...
- 一个能极大提高生产率的Chrome新建标签页扩展
我是一个对开发生产率有着BT需求的程序员,总是追求将自己的单位时间生产率最大化. 通过分析,我发现自己一天会反反复复使用Chrome的新建标签,然后访问常用的网站.因此,我期望新建一个默认的Chrom ...