《统计学习方法》笔记(十二)--Adaboost
来源:互联网 发布:乐心手环数据清零几点 编辑:程序博客网 时间:2024/04/28 08:04
通过改变样本的权重来学习多个分类器并将这些分类器进行线性组合,提高分类性能。
理论依据:在PAC(probably approximately correct)的框架下强可学习与弱可学习的等价性
书中例8.1的MATLAB实现
%adaboost 例8.1%一个一维分类器%弱分类器用的是简单的阈值处理close all;clear all;clc;%%x=0:1:9;y=[1 1 1 -1 -1 -1 1 1 1 -1];N=size(x,2);w(1,:)=ones(N,1)./N;D(1,:)=w;%v(1)=2.5;%%for m=1:3%判断条件有待改进 [Y(m,:) e v(m) flag(m)]=G(x,y,w(m,:));%得到现有训练集上误差率最低的分类器阈值及相应的分类误差 if e==0 break; end a(m)=0.5*log((1-e)./e); for i=1:N T(i)=w(m,i)*exp(-a(m)*y(i)*Y(m,i)); end Z=sum(T); w(m+1,:)=T/Z; D(m+1,:)=w(m+1,:); endavflag
%%在adaboost 中用于计算误差率function [e]=E(y_t,y,w)e=0;for i=1:length(y) if y_t(i)==y(i) else e=e+w(i); endend%e=e./i;end
<p>%%在Adaboost例子中用于计算分类器的返回值function [RY e v flag]=G(x,y,w)%%ii=1;for v=0.5:0.5:x(end) for i=1:size(x,2) if (x(i)<v) Y(ii,i)=1; else Y(ii,i)=-1; end end e_t1(ii)=E(Y(ii,:),y,w); ii=ii+1; end[e1 idx1]=min(e_t1);v1=idx1*0.5;RY1=Y(idx1,:);%%%弱分类器中不等号的方向改变ii=1;for v=0.5:0.5:x(end) for i=1:size(x,2) if (x(i)>=v) Y(ii,i)=1; else Y(ii,i)=-1; end end e_t2(ii)=E(Y(ii,:),y,w); ii=ii+1; end[e2 idx2]=min(e_t2);v2=idx2*0.5;RY2=Y(idx2,:);%%if e1<e2 flag=1; RY=RY1; e=e1; v=v1;else flag =0; RY=RY2; e=e2; v=v2;end</p><p>end</p>
1 0
- 《统计学习方法》笔记(十二)--Adaboost
- 《统计学习方法》笔记(8):AdaBoost算法
- 《统计学习方法》笔记——AdaBoost
- 统计学习方法---adaboost
- 统计学习方法(五)AdaBoost
- 《统计学习方法》笔记(一)
- 《统计学习方法》笔记(二)
- 统计学习方法笔记(一)
- 统计学习方法笔记(二)
- 统计学习方法笔记(三)
- 统计学习方法笔记(四)
- 统计学习方法笔记(五)
- 统计学习方法笔记(一)
- 统计学习方法笔记(1)
- 统计学习方法笔记(一)
- 《统计学习方法》笔记(一)
- 《统计学习方法》笔记(1)
- 统计学习方法笔记(一)统计学习方法概要
- 详解Java GC的工作原理
- Add Two Numbers
- UITableViewCell重叠
- Scala 函数式编程
- jQuery.extend 函数详解
- 《统计学习方法》笔记(十二)--Adaboost
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
- leetCode 41.First Missing Positive (第一个丢失的正数) 解题思路和方法
- stdin,stderr,stdout
- imregionalmax函数
- Linux下halt,poweroff,reboot,shutdown命令的区别
- org.testng.TestNGException: Cannot find class in classpath
- dada
- 用转换器把ppt转为pdf的详细步骤