zoukankan      html  css  js  c++  java
  • AdaBoost

    一:AdaBoost原理介绍

          假设你是一名患者,有某些症状。你选择咨询多位医生,而不是一位。你根据医生现在的诊断准确率,对每位医生的诊断赋予一个权重。然后对每个医生的诊断结果,乘与他的诊断准确率。最终得出最大值结果的诊断作为最终的结果。

    在boosting方法中,权重赋予每个训练元组。迭代地学习k个分类器。学习得到分类器Mi之后,更新权重,使得其后的分类器Mi+1更加关注Mi误分类的训练元组。最中得到分类器M* 组合每个个体分类器的表决,其中每个分类器投票的权重是其准确率的函数。

          AdaBoost(Adaptive Boosting)是boost的其中一种方法。

          假设我们要分类的数据集有d个类别,给定的数据集D,有d个类标记的元组(X1,y1),(X2,y2),...,(Xn, yn)其中yi是元组Xi的类标记。开始的时候,AdaBoost对每个训练元组赋予相同的权重1/d。为了组合k个分类器,那么要进行k次迭代。在第i轮迭代中,从D中抽样选择d个训练元组构成训练集Di.这里采用的是有放回的抽样,所以可能同一元组会被选中多次。每个元组选择的机会由它的权重解决。从训练集Di中导出分类器Mi。然后使用Di作为检验集计算Mi的误差。

         如果元组不正确分类,则它的权重增加。如果元组正确分类,则它的选择减少。元组的权重反应它们分类的困难程度-权重越高,越可能错误的分类。然后,使用这些权重,为下一轮的分类器产生训练样本。其基本的思想是,当建立分类器是,希望它更关注上一轮误分类的元组。某些分类器对某些“困难”元组可能比其他分类器好。这样,建立了一个互补的分类器系列。算法步骤如下:

         

    算法:AdaBoost。
    输入:
          D:类标记的训练元组集
          k:轮数(每一轮产生一个分类器)
          
    输出:
          一个复合模型
    
    方法:
    1.将D中每个元组的权重初始化为1/d
    2.for i=1 to k do
            根据元组的权重从D中有放回抽样,得到Di;
            使用训练集Di导出模型Mi
            计算Mi的错误了error(Mi) 
            if error(Mi)>0.5 then
               转向2
            endif
            for Di的每个被正确分类的元组do
                 元组的权重乘以error(Mi)/(1-errror(Mi))//更新权重
            规范化每个元组的权重
    3.endfor
    使用组合分类器对新元组Xi分类:
    1.将每个类的权重初始化为0; 2.for i=1 to k do 3. Wi=log((1-error(Mi))/error(Mi)) 4. c=Mi(x); 5. 将Wi加到类c的权重 6.endfor 7.返回具有最大权重的类;

    为了计算模型Mi的错误率,求Mi误分类Di中的每个元组加权和。即:

          

    其中err(Mi)是元组Xj的误分类误差:如果Xj被误分类,则err(Xj)为1;否则,它为0 。如果分类器Mi的性能太差,错误率超过0.5.则丢弃它,并重新产生新的训练集Di,由它导出新的Mi.

        Mi的错误率影响训练元组的权重个更新。如果一个元组在第i轮正确分类,则其权重乘以error(Mi)/(1-error(Mi)).一旦所有正确分类元组的权重都被更新,就对所有元组的权重(包括分类的元组)规范化,使得他们的和与以前一样。为了规范化权重,将它乘以旧权重之和,除以新权重之和。结果误分类的权重增加,而正确分类的元组权重减少。

    二:用分类器组合来预测线元组X的类标志

    分类器Mi的权重为:

    用组合分类器去预测心元组X,然后用Mi预测结果去乘Mi权重得出Mi的预测结果Hci,把具有相同预测结果的值相加,最大的值就是X的预测结果。

    参考《数据挖掘概念与技术》page247

  • 相关阅读:
    获取文件夹下的所有子文件,读取TXT文档
    360笔试
    刷题总结
    背包问题
    二叉树的创建、层次遍历、前序遍历、中序遍历、后序遍历
    今日头条面试
    面试题目
    Java高并发秒杀优化
    配置tomcat解压版
    环境变量设置:
  • 原文地址:https://www.cnblogs.com/aijianiula/p/4523816.html
Copyright © 2011-2022 走看看