主要内容

合奏算法

本主题介绍了Statistics和Machine learning Toolbox™支持的集成学习算法,包括bagging、ran万博1manbetxdom space和各种boosting算法。属性指定算法'方法'的名称-值对参数fitcensemble.fitrensemble, 要么模板lemble..使用fitcensemble.fitrensemble创建一个学习者集合,分别用于分类或回归。使用模板lemble.创建集成学习器模板,并将模板传递给fitcecoc为ECOC多类学习指定集成二进制学习者。

对于Bootstrap聚合(袋装)和随机林,可以使用TreeBagger也是。

的价值'方法' 算法 万博1manbetx支持的问题 例子
'包' Bootstrap聚合(袋装)和随机森林[1][2][3] 二进制和多字母分类,回归
'子空间' 随机子空间[9] 二值和多类分类 随机子空间分类
“AdaBoostM1” 二值分类的自适应增强[5][6][7][11] 二进制分类
“AdaBoostM2” 多类分类的自适应增强[5] 多包分类 使用分类集成预测类标签
“GentleBoost” 温柔的适应性增强[7] 二进制分类
'logitboost' 自适应逻辑回归[7] 二进制分类
“LPBoost” 线性规划促进[13] 二值和多类分类 Lpboost和全腾料为小型合奏
“LSBoost” 最小二乘提振[2][8] 回归
'robustboost' 强劲的推动[4] 二进制分类 曲调RobustBoost
'rusboost' 随机采样提高[12] 二值和多类分类 不平衡数据分类
“TotalBoost” 完全正确的提高[13] 二值和多类分类 Lpboost和全腾料为小型合奏

要了解如何选择合适的算法,请看选择适用的集成聚合方法

注意一些算法的使用,例如LPBoostTotalBoost,抢劫,需要最优化工具箱™。

Bootstrap聚合(袋装)和随机森林

统计和机器学习工具箱为袋装和随机森林提供三个物体:

详细了解两者的区别TreeBagger以及袋装套装(ClassificationBaggedensemble.RegressionBaggedEnsemble), 看套袋式和套袋式的比较

Bootstrap聚合装袋)是一种整体学习。要将一个较弱的学习对象(如数据集上的决策树)打包,可以生成许多数据集的自举副本,并在副本上生长决策树。通过随机选择获得每个引导副本N在......之外N用替换观察,在哪里N为数据集大小。此外,集合中的每棵树都可以为每次决策分裂随机选择预测器,这种技术称为随机森林[2]已知提高了袋装树的准确性。默认情况下,每个拆分为随机选择的预测器的数量等于分类的预测器数量的平方根,以及回归的预测器数量的三分之一。培训模型后,您可以通过使用使用的新数据来找到训练有素的合奏的预测响应预测函数。预测从各个树木的预测下占据平均值。

默认情况下,袋装树的每个叶子的最小观察次数被设置为1进行分类和5回归。按照默认叶子大小生长的树通常非常深。对于集成的预测能力来说,这些设置接近最优。通常情况下,你可以在不丧失预测能力的情况下种植叶子更大的树木。这样做可以减少训练和预测时间,以及对训练集成的内存使用。控件可以控制每个叶子的最小观察数'minleafsize'的名称-值对参数Templatetree.TreeBagger.注意你用的是Templatetree.函数指定树学习者的选项,当您通过使用fitcensemble.fitrensemble

袋式决策树的几个特点使其成为一种独特的算法。画N在......之外N对于每棵决策树,平均有37%的观测值被替换。这些被忽略的观察被称为“out-of-bag”观察。TreeBagger以及袋装套装(ClassificationBaggedensemble.RegressionBaggedEnsemble)具有属性和对象函数,其名称以其开头OoB.,使用袋子外观察。

  • 使用Oobpredict.函数来估计预测能力和特征的重要性。对于每一个观察,Oobpredict.通过对观测结果不合格的集合中所有树的预测进行平均,来估计不合格的预测。

  • 估计平均包外误差使用oobError(为了TreeBagger)或oobLoss(适用于袋装合奏)。这些功能比较了对观察到的训练的所有观察结果的禁止预测的响应。袋外平均值是真正集合误差的无偏估计。

  • 通过使用使用的特征重要性估计OobpermutedPredictordeltaError属性(TreeBagger)或oobPermutedPredictorImportance物业(适用于袋装合奏)。该软件一次随机突破一个变量或列的袋袋数据,并估计由于该排列而导致的袋出误差的增加。增加越大,特征越重要。因此,您无需为袋装集合提供测试数据,因为您可以在培训过程中获得可靠的预测力和特征重要性的可靠估计。

TreeBagger还提供了近距离矩阵接近财产。每次有两个观测点落在一棵树的同一个叶子上,它们的距离就增加1。为了归一化,对集合中所有树的这些近似值求和,然后除以树的数量。得到的矩阵是对称的,对角元素等于1,非对角元素的范围从0到1。您可以使用这个矩阵来发现离群观测值,并通过多维尺度发现数据中的集群。

有关使用袋装的示例,请参阅:

的比较TreeBagger和袋装合奏

TreeBagger以及袋装套装(ClassificationBaggedensemble.RegressionBaggedEnsemble)共享大多数功能,但不是全部。另外,一些功能有不同的名称。

TreeBagger袋装leanembles的功能

特征 TreeBagger财产 TreeBagger方法
邻近矩阵的计算 接近

Fillprox.mdsprox

当您估计近距离矩阵和异常值时TreeBagger模型使用Fillprox., MATLAB®必须符合一个n-经过-n矩阵在记忆中,在哪里n是观察人数。因此,如果n是适度的大小,避免估计接近矩阵和异常值。

计算离群值 概要 N / A.
使用分类边际对预测因子重要性的包外估计 OobpermutedPredictord eltameanMargin.OobpermutedPredictorcountraisemargin. N / A.
合并两个乐队培训 N / A. 附加
分位数回归 N / A. quantilePredictSmileileError.oobQuantilePredictOOBQUANTILEERROR.
创建合奏的并行计算 N / A.

设定“UseParallel”参数到真正的通过使用'选项'的名称-值对参数TreeBaggergrowTrees.并行计算需要并行计算工具箱™。

对于双核系统及以上,TreeBagger使用英特尔并行化培训®线程构建块(TBB)。因此,指定“UseParallel”选项在单个计算机上没有帮助。在运行时使用此选项TreeBagger在一个集群中。关于Intel TBB的详细介绍请参见https://software.intel.com/en-us/intel-tbb.

支持创建集合的高数组万博1manbetx N / A. 有关详细信息,请参见高大的数组

对于双核系统及以上,fitrensemblefitcensemble.还使用英特尔线程构建块(TBB)并行化培训。

袋装合奏功能不在TreeBagger

特征 描述
Hyperparameter优化 使用“OptimizeHyperparameters”名称-值对的论点。
用数字预测器加速训练 使用'numbins'名称-值对的论点。
代码生成的预测 培训模型后,您可以生成C / C ++代码,该代码预测新数据的标签。生成C / C ++代码需要MATLAB编码器™.有关详细信息,请参见代码生成简介

不同的名称TreeBagger和袋装集合体

特征 TreeBagger 袋装集合体
每个预测器的分割标准贡献 DeltaCriterionDecisionSplit财产 第一次的输出predictorImportance(分类)或predictorImportance(回归)
预测关联 SurrogateAssociation财产 第二个产出predictorImportance(分类)或predictorImportance(回归)
预测原则的外袋估计 OobpermutedPredictordeltaError财产 的输出oobPermutedPredictorImportance(分类)或oobPermutedPredictorImportance(回归)
错误(错误分类概率或平均误差) 错误oobError方法 损失oobLoss方法(分类)或损失oobLoss方法(回归)
培训额外的树木并将它们添加到合奏中 growTrees方法 的简历方法(分类)或的简历方法(回归)
每棵树的平均分类余量 意思oobMeanMargin方法 边缘oobEdge方法(分类)

此外,当你训练一个模型并预测反应时,有两个重要的区别:

  • 如果你传递一个错误分类的代价矩阵TreeBagger,它将矩阵传递给树。如果你传递一个错误分类的代价矩阵fitcensemble.,它使用矩阵来调整类的现有概率。fitcensemble.然后通过调整后的先前概率和默认成本矩阵到树上。默认成本矩阵是(K)的黑眼圈(K)K类。

  • 不像损失边缘方法在ClassificationBaggedensemble.,TreeBagger错误意思方法不归一化输入观测权的先验概率在各自的类。

随机子空间

使用随机子空间集合(子空间),以提高判别分析的准确性(分类Discriminant.)或k-最近的邻居 (ClassificationKnn.)分类器。子空间合奏器还具有使用较少的内存而不是与所有预测器的合奏的优势,并且可以处理缺失的值(年代)。

基本随机子空间算法使用这些参数。

  • 是每个学习者要抽样的维度(变量)的数量。集使用NPredToSample名称值对。

  • d数据中的维数,即数据矩阵中的列数(预测器)X

  • n为集合中学习者的人数。集n使用nlearn.输入。

基本随机子空间算法执行以下步骤:

  1. 选择而不替换随机的一组预测的d可能的值。

  2. 用“”训练弱学习者选择的预测因子。

  3. 重复步骤1和2,直到有n弱学习者。

  4. 通过平均预测分数预测弱学习者,并将类别分类为最高平均值分数

你可以选择创建一个弱学习者为每一个可能的集合预测的d维度。为此,设置n,学习者人数,到'AllPredictorCombinations'.在这种情况下,有nchoosek(大小(X, 2), NPredToSample)合奏中的弱学习者。

fitcensemble.在为学习者选择了预测因子后,降低了它们的权重,这样以后的学习者使用先前使用过的预测因子的机会就更低。这种加权倾向于使预测因子在学习者中比统一加权更均匀地分布。

示例使用子空间,请参阅随机子空间分类

增强算法

二值分类的自适应增强

自适应增加命名adaboostm1.是一种非常流行的二进制分类促进算法。该算法依次训练学习者。对于具有索引的每个学习者tadaboostm1.计算加权分类误差

ε. t σ. n 1 N d n t y n h t x n

在哪里

  • xn是观察值的预测值值的矢量n

  • yn是真正的类标签。

  • ht是对索引的学习者(假设)的预测t

  • 为指标函数。

  • d n t 观察的权重是多少n在步骤t

adaboostm1.然后增加被学习者错误分类的观察值的权重t并减少了学习者正确归类的观察的权重t.下一个学习者t+ 1然后对更新权重的数据进行训练吗 d n t + 1

培训结束后,adaboostm1.使用

f x σ. t 1 T α. t h t x

在哪里

α. t 1 2 日志 1 - ε. t ε. t

是集合体中弱假设的重量。

培训的adaboostm1.可以被视为指数损失的舞台上最小化

σ. n 1 N w n exp. - y n f x n

在哪里

  • ynε{-1,+ 1}是真实类标签。

  • wn观察权重标准化为高达1。

  • fxn)ε(-∞,+∞)是预测的分类分数。

观察权重wn是您传递给的原始观测权重吗fitcensemble.

的第二个输出预测方法的一个adaboostm1.分类集合是一个N- 2个课程的2个分类分数矩阵N观察。该矩阵中的第二列始终等于负第一列。这预测方法返回两个分数以与多键模型一致,但这是冗余的,因为第二列始终是第一个的负数。

最经常adaboostm1.用于决策树桩(默认)或浅树。如果增强的树桩性能较差,尝试将最小父节点大小设置为训练数据的四分之一。

缺省情况下,增强算法的学习速率为1.如果将学习率设置为较低的数字,则集合以较慢的速率学习,但可以收敛到更好的解决方案。0.1是学习速度的一个普遍选择。学习的速度低于1通常被称为“收缩”。

示例使用adaboostm1.,请参阅对两种分类模型进行成本敏感比较创建ECOC多类学习的集成模板

多类分类的自适应增强

自适应增加命名adaboostm2.是一个延伸adaboostm1.对于多个课程。而不是加权分类错误,adaboostm2.使用加权伪损失N观察和K班级

ε. t 1 2 σ. n 1 N σ. k y n d n k t 1 - h t x n y n + h t x n k

在哪里

  • htxnk)是学习者逐步预测的信心t进入课堂k从0(完全不自信)到1(高度自信)。

  • d n k t 在步骤中是观察重量t上课k

  • yn真正的class标签是否取了其中一个K价值观。

  • 第二个和是对所有类的求和,而不是对真正的类yn

解释伪损失比分类错误更难,但思路是一样的。伪损失可以作为对集合中任何学习者的分类精度的度量。伪损失通常表现出与加权分类错误相同的行为adaboostm1.:升级的合奏中的前几个学习者提供低伪损失值。在前几个训练步骤之后,集合开始以较慢的速度学习,伪损失值从下面达到0.5。

有关示例使用adaboostm2.,请参阅使用分类集成预测类标签

温柔的适应性增强

温和的自适应增强(GentleBoost,也被称为Gentle AdaBoost),结合了以下特点adaboostm1.Logitboost..就像adaboostm1.GentleBoost最小化指数损失。但它的数字优化是不同的。就像Logitboost.,每个弱的学习者都适合回归模型来响应值yn∊{1 + 1}

fitcensemble.中计算并存储均方误差FitInfo集合对象的属性。均方误差是

σ. n 1 N d n t y n - h t x n 2

在哪里

  • d n t 在步骤中是观察重量t(重量增加了1)。

  • htxn)是对回归模型的预测ht拟合响应值yn

随着个别学习者的实力削弱,加权平均平方误差接近1。

示例使用GentleBoost,请参阅使用搭档和并行计算加速培训ecoc分类器在分类系统中处理不平衡的数据或不相等的误分类成本

自适应逻辑回归

自适应逻辑回归(Logitboost.)是另一个流行的二进制分类算法。Logitboost.类似于工作adaboostm1.,除了它最小化了二项偏差

σ. n 1 N w n 日志 1 + exp. - 2 y n f x n

在哪里

  • ynε{-1,+ 1}是真实类标签。

  • wn观察权重标准化为高达1。

  • fxn)ε(-∞,+∞)是预测的分类分数。

二项偏差对分类严重错误的观测值(具有较大负值的观测值)赋予较小的权重ynfxn)))。Logitboost.能给出比adaboostm1.对于可分离的类别不可分割的数据。

学习者t在一个Logitboost.合奏适用于回归模型以响应值

y n y n - p t x n p t x n 1 - p t x n

在哪里

  • y *nε{0,+ 1}是重新标记的类(0而不是-1)。

  • ptxn)目前的观察概率估计xn是1级。

fitcensemble.中计算并存储均方误差FitInfo集合对象的属性。均方误差是

σ. n 1 N d n t y n - h t x n 2

在哪里

  • d n t 在步骤中是观察重量t(重量增加了1)。

  • htxn)是对回归模型的预测ht拟合响应值 y n

yn可以从-∞到+∞,因此平均方形错误没有定义良好的界限。

示例使用Logitboost.,请参阅火车分类合奏通过对数值预测值进行分类来加速训练

线性规划促进

线性规划提升(LPBoost),如TotalBoost,通过尝试最大化最小值来执行多类分类利润在训练集中。此尝试采用优化算法,即线性规划LPBoost.因此,您需要一个优化工具箱许可证才能使用LPBoostTotalBoost

分类的余量是预测软分类之间的差异分数对于真正的课程,以及虚假课程的最大分数。对于树木,分数叶节点分类的后验概率为该节点分类的后验概率。在一个节点上分类的后验概率是导致该分类的节点的训练序列的数量,除以导致该节点的训练序列的数量。有关更多信息,请参见更多关于利润

为什么要最大化最小利润?一方面,泛化误差(对新数据的误差)是获得负边际的概率。Schapire和歌手[10]根据获得负边际的概率建立这个不等式:

P 测试 ≤. 0 ≤. P 火车 ≤. θ. + O 1 N V 日志 2 N / V θ. 2 + 日志 1 / δ.

在这里是缘,θ.是任何正数,V是vapnik-chervonenkis尺寸的分类器空间,N是培训集的大小,δ.是一个小的正数。不等式具有概率1-δ.在很多身份验证训练和测试集上。这个不等式的意思是:为了获得一个低的泛化误差,将观测值低于边际值的数目最小化θ.在训练集中。

LPBoost通过一系列线性规划问题,迭代地使最小边距最大化。同样,二元性,LPBoost最小化最大值边缘,边缘是加权平均边缘(见更多关于)。在每次迭代中,问题中都有更多的约束条件。因此,对于大问题,优化问题变得越来越受限,求解速度也越来越慢。

LPBoost通常创建的集合中,许多学习者的权重比其他学习者的权重小数量级。因此,为了更好地删除不重要的集合成员,使用袖珍的方法的成员将重新排序LPBoost从最大重量到最小的合奏。因此,您可以轻松地使用该集合的最不重要成员雷诺维尔人方法。

有关示例使用LPBoost,请参阅Lpboost和全腾料为小型合奏

最小二乘提振

最小二乘提高(lsboost.)拟合回归集成。在每一步中,这套系统都让新学习者适应观察到的反应与之前成长的所有学习者的聚合预测之间的差异。该集成适合于最小化均方误差。

您可以使用lsboost.随著缩水而通过的LearnRate参数。缺省情况下,该参数为1,集合以最大的速度学习。如果你设置LearnRate价值01,集合适合每个新的学习者yn- - - - - -ηf.xn, 在哪里

  • yn为观察到的响应。

  • fxn)是迄今为止成长的所有弱学习者的汇总预测,以供观察xn

  • η.是学习率。

示例使用lsboost.,请参阅火车回归合奏优化增强回归集成,合奏正规化

强劲的推动

促进算法,如adaboostm1.Logitboost.在每一个提升步骤增加错误分类观察的权重。这些权重可以变得非常大。如果出现这种情况,增强算法有时会专注于一些错误分类的观察,而忽略大部分训练数据。因此,平均分类精度受到影响。在这种情况下,您可以尝试使用健壮增强(抢劫)。该算法不会将几乎整个数据权重分配给严重错误分类的观察。它可以产生更好的平均分类准确性。您需要优化工具箱许可证使用抢劫

不像adaboostm1.Logitboost.抢劫不会最大限度地减少特定损失功能。相反,它最大化了与特定阈值高于特定阈值的分类余量的观察数。

抢劫基于时间演变的列车。算法开始于t= 0.步步,抢劫解决优化问题,以在时间δ上找到正面阶跃t培训数据Δ的平均余量也有相应的正向变化抢劫如果这三个条件中至少有一个是真的,就停止训练并退出:

  • 时间t达到1。

  • 抢劫不能找到一个解决优化问题的正面更新Δt和Δ

  • 抢劫在你要求时尽可能多的学习者。

结果来自抢劫可以使用任何终止条件。通过交叉验证或使用独立的测试集来估算分类准确性。

从中获得更好的分类准确性抢劫,您可以调整三个参数fitcensemble.Robirusterrorgoal.robustmaxmargin.,RobustMarginSigma.从改变for的值开始Robirusterrorgoal.从0到1.最大允许的值Robirusterrorgoal.取决于另外两个参数。如果你通过一个太高的值,fitcensemble.生成错误消息,显示允许的范围Robirusterrorgoal.

有关示例使用抢劫,请参阅曲调RobustBoost

随机采样提高

随机缺乏采样增强(rusboost.)在分类不平衡数据时特别有效,这意味着培训数据中的某些类具有比另一个的成员更少。rus在抽样下进行随机。算法需要N,即训练数据中成员数最少的班级中的成员数,作为抽样的基本单位。有更多成员的班级仅通过上课进行抽样N每节课的观察。换句话说,如果有K对于每个弱学习者,rusboost.使用数据的子集N每个人的观察K类。升压程序遵循该过程多类分类的自适应增强为了重新重复和构建集合。

当你构造一个rusboost.集合中,有一个可选的名称-值对称为RatioToSmallest.giveK值,每个值表示的倍数N为相关类进行采样。例如,如果最小的类有N= 100个成员,然后RatioToSmallest(2、3、4)意味着每个弱学习者在1班有200个成员,2班有300个成员,3班有400个成员。如果RatioToSmallest导致值大于特定类别中的成员数量的值rusboost.样品的成员与替换。否则,rusboost.样品的成员没有更换。

有关示例使用rusboost.,请参阅不平衡数据分类

完全正确的提高

完全校正升压(TotalBoost),如线性编程升压(LPBoost),通过尝试最大化最小值来执行多字符分类利润在训练集中。此尝试采用优化算法,即二次规划TotalBoost.因此,您需要一个优化工具箱许可证才能使用LPBoostTotalBoost

分类的余量是预测软分类之间的差异分数对于真正的课程,以及虚假课程的最大分数。对于树木,分数叶节点分类的后验概率为该节点分类的后验概率。在一个节点上分类的后验概率是导致该分类的节点的训练序列的数量,除以导致该节点的训练序列的数量。有关更多信息,请参见更多关于利润

为什么要最大化最小利润?一方面,泛化误差(对新数据的误差)是获得负边际的概率。Schapire和歌手[10]根据获得负边际的概率建立这个不等式:

P 测试 ≤. 0 ≤. P 火车 ≤. θ. + O 1 N V 日志 2 N / V θ. 2 + 日志 1 / δ.

在这里是缘,θ.是任何正数,V是vapnik-chervonenkis尺寸的分类器空间,N是培训集的大小,δ.是一个小的正数。不等式具有概率1-δ.在很多身份验证训练和测试集上。这个不等式的意思是:为了获得一个低的泛化误差,将观测值低于边际值的数目最小化θ.在训练集中。

TotalBoost通过约束,最小化当前重量分布和初始重量分布之间的kullback-leibler分歧的代理,这是受约束的边缘(加权保证金)低于某一数值。代理是散度的二次扩展:

D W W 0 σ. n 1 N 日志 W n W 0 n σ. n 1 N 1 + W n W 0 n δ. + 1 2 W n δ. 2

Δ的区别在哪里Wn),当前和下一次迭代的权重,和W0,初始权重分布,它是均匀的。这个优化公式使权值不会变为零。在每次迭代中,问题中都有更多的约束条件。因此,对于大问题,优化问题变得越来越受限,求解速度也越来越慢。

TotalBoost通常创建的集合中,许多学习者的权重比其他学习者的权重小数量级。因此,为了更好地删除不重要的集合成员,使用袖珍的方法重新排序A的成员TotalBoost从最大重量到最小的合奏。因此,您可以使用该删除集合的最不重要的成员雷诺维尔人方法。

有关示例使用TotalBoost,请参阅Lpboost和全腾料为小型合奏

参考

[1] Breiman, L。装袋预测。机器学习26,1996,第123-140页。

[2] Breiman, L。随机森林。机器学习45,2001,pp。5-32。

[4] Freund, Y。一个更健壮的助推算法。arxiv:0905.2138v1,2009。

弗洛因德,Y.和R. E. Schapire。在线学习的决策理论推广及其在助推中的应用。J.计算机与系统科学,Vol。55,1997,第119-139页。

[6]弗里德曼,J.贪婪函数近似:梯度增压机。《统计年鉴》,第29卷第5期,2001年,第1189-1232页。

[7]弗里德曼,J.,T. Hastie和R. Tibshirani。加性逻辑回归:助推的统计观点。统计数据,卷。28,2,2000,pp。337-407。

Hastie, T., R. Tibshirani, J. Friedman。统计学习的要素, 第二版。纽约:斯普林斯,2008年。

[9]何,T.K.构建决策林的随机子空间方法。IEEE关于模式分析和机器智能的交易,Vol。20,8,1998,第832-844页。

R. Schapire和Y. Singer。使用信心评级预测改进了提振算法。机器学习,卷。37,第399,第399页,第297-336页。

Schapire, r.e.等。扩大差额:对投票方法有效性的一种新的解释。《统计年鉴》,1998年第26卷第5期,第1651-1686页。

[12] Seiffert,C.,T.Khoshgoftaar,J. Hulse和A. Napolitano。RUSBoost:在训练数据有偏差时提高分类性能。国际模式识别会议,2008,第1-4页。

[13] Warmuth,M.,J. Liao和G. Ratsch。完全正确的推进算法,最大限度地扩大边际。Proc。23 int'l。Conf。在机器学习,ACM,纽约,2006,PP。1001-1008。

另请参阅

||||||||||||

相关的话题