最新网站排名优化方法,云龙徐州网站开发,如何提高网站的访问量,加入电商平台需要多少钱一、Decision Stumps#xff1a; Decision Stumps称为单层分类器#xff0c;主要用作Ensemble Method的组件#xff08;弱分类器#xff09;。一般只进行一次判定#xff0c;可以包含两个或者多个叶结点。对于离散数据#xff0c;可以选取该属性的任意一个数据作为判定的…一、Decision Stumps Decision Stumps称为单层分类器主要用作Ensemble Method的组件弱分类器。一般只进行一次判定可以包含两个或者多个叶结点。对于离散数据可以选取该属性的任意一个数据作为判定的分割点对于连续数据可以选择属性的一个阈值做为分割点进行判定大于该阈值分配到一类小于该阈值分配到另一类当然也可以选取多个阈值并由此得到多个叶结点。 二、AdaBoost的理解 1、基本流程 简单的说AdaBoost框架就是根据指定的参数进行轮训练得到个弱分类器及每个弱分类器对应的权重最后将这些弱分类器的结果进行线性组合得到最终的结果。 关于多属性数据集的处理 在每一轮训练过程中在每个属性上根据分割的阈值不同得到多个单层分类器。在这些从所有属性上得到的分类器中选取一个带权误差率最小的单层分类器作为该轮训练的弱分类器。 2、带权分类误差 在进行训练之前为训练集中的每个样本分配一个权重使用向量表示。在第轮训练结束后根据得到的弱分类器的性能计算该分类器对应的权值并由的在训练集上的分类结果对权重向量进行更新。 分类器的性能度量和该分类器在训练集上的结果都是通过计算该分类器在训练集上的带权分类误差获取。所谓带权分类误差是指将待分类的样本包含的权重此处的权重就是之前为该样本分配的权重结合在该数据集上的分类误差得到分类器在该数据集上的一个考虑样本权重的分类误差其定义如下 (1.1) 其中表示第个弱分类器的带权分类误差值表示第次更新后样本的权重表示使用第个弱分类器对样本的分类结果表示样本的真实标签是一个指示函数其值如下 (1.2) 通过公式1.1和1.2可以看出带权分类误差与两方面的因素相关 1) 分类器在样本上的误差值 2) 样本集中每个样本的权重 注意AdaBoost就是通过该值与弱分类器产生关系。 3、带权分类误差再分析 以DSDecision Stumps弱分类器为例对于一个数据集包含多个属性要在该数据集上学习一个DS可以使用不同的属性作为分割判断条件。对于同一个属性也可以选择多个不同的分割点离散型/阈值连续性作为判断条件。因此对于一个数据集实质上可以产生很多不同的DS那么究竟选择哪一个DS作为我们从该数据集上最终学习得到的弱分类器 很直观的想法我们可以使用穷举产生所有的DS然后分别计算每个DS的分类误差选择具有最小分类误差的DS作为从该数据集上学习到的弱分类器。然而问题出在我们学习的这个数据集中的所有样本权重此处可以理解为每个样本的价值、贡献度等并不相同。我们在考虑选择哪个DS最为最终的弱分类器时不但要考虑该DS的分类错误率还要考虑每个样本的权重问题因为将高权重的样本分错造成的后果远比将低权重样本分错更为严重。 考虑公式1.1中带权分类误差的定义该指标有效的将分类器的分类误差和待分类样本的权重结合起来因此可以作为选择弱分类器时的一个标准使用。 总结起来简单的说带权分类误差将分类器的分类误差和样本本身的权重进行结合可以作为模型选择的一个标准使用。 4、弱分类器的权重计算 弱分类器对应的权重与其本身的带权分类误差相关其计算公式如下 (1.3) 通过简单分析可以知道带权分类误差的范围是[0,1]绘制分类器的权重函数的图像如下所示 Fig. 1. 弱分类器权重函数分布 由Fig. 1.可以看出弱分类器的权重与其对应的带权分类误差呈反比关系即就是带权分类误差越小该分类器对应的权值越大反之亦然。 5、训练样本的权重更新 训练得到新的弱分类器后需要对样本权值进行更新更新的公式如下 (1.4) 公式1.4定义了计算弱分类器对应的权值后对样本的权重更新过程。如果该分类器在该样本上分类正确则降低该样本的权值如果分类错误则提高该样本的权值。公式中前半部分主要用于对整个权值向量进行归一化以使其和为1。 6、参考 维基百科关于AdaBoost算法的介绍 用 xi 和 yi 表示原始样本集D的样本点和它们的类标注意yi的取值只能是1或-1。用 Wk(i) 表示第k次迭代时全体样本的权重分布。这样就有如下所示的AdaBoost算法 1. begin initial D{x1y1...xnyn}kmax(最大循环次数)Wk(i)1/ni1...n 2. k ← 0 3. do k ← k1 4. 训练使用按照 Wk(i) 采样的 D 的弱学习器 Ck 5. Ek ← 对使用 Wk(i) 的 D 测量的 Ck 的训练误差 6. 7. 8. until kkmax 9. return Ck和αkk1...kmax带权值分类器的总体 10. end 注意第5行中当前权重分布必须考虑到分类器 Ck 的误差率。在第7行中 Zk 只是一个归一化系数使得 Wk(i) 能够代表一个真正的分布而 hk(xi) 是分量分类器 Ck 给出的对任一样本点 xi 的标记1或-1hk(xi) yi 时样本被正确分类。第8行中的迭代停止条件可以被换为判断当前误差率是否小于一个阈值。 最后的总体分类的判决可以使用各个分量分类器加权平均来得到 这样最后对分类结果的判定规则是: 三、整体流程再梳理 按照自己的理解将AdaBoost的框架再进行梳理一遍整个Boost框架分为两部分训练和分类。 假设样本的类别为 1、训练部分 a) 为训练集中每个样本分配权重 b) 训练弱分类器 c) 计算带权分类误差 d) 计算弱分类器对应的权重 e) 更新样本权重 最终得到个不同的弱分类器及其对应的权重。 2、分类部分 a) 对待分类样本计算函数 b) 对该样本最终的分类结果为 四、核心问题再讨论 1、带权分类误差的作用 在第二部分详细讨论了带权样本误差的生成机制问题描述了如何计算带权样本误差和它怎样对AdaBoost框架产生影响。这里将带权样本误差的作用再做以简单的总结带权分类误差的主要作用有两个 1、 在训练弱分类器时使用该指标在训练的多个DS中选择带权分类误差最小的最为该轮训练的弱分类器 2、 在AdaBoost框架中使用该指标计算该轮训练得到的弱分类器对应的权值 2、弱分类器的误差和AdaBoost框架的误差 实质上在整个训练的过程中每轮训练得到的弱分类器可能一直会存在分类错误的问题不论训练了多少轮生成的单个弱分类器都有分类错误然而整个AdaBoost框架却有可能快速收敛整个AdaBoost框架的错误率为0。造成这个现象的原因是 每轮训练结束后AdaBoost框架会对样本的权重进行调整该调整的结果是越到后面被错误分类的样本权重会越高。这样到后面单个弱分类器为了达到较低的带权分类误差都会把样本权重高的样本分类正确。虽然单独来看单个弱分类器仍会造成分类错误但这些被错误分类的样本的权重都较低在AdaBoost框架的最后输出时会被前面正确分类的高权重弱分类器“平衡”掉。这样造成的结果就是虽然每个弱分类器可能都有分错的样本然而整个AdaBoost框架却能保证对每个样本进行正确分类从而实现快速收敛。转载于:https://www.cnblogs.com/chaosimple/p/4029795.html