主要内容

整体算法

这个主题提供支持的集成学习算法的描述统计和机器学习工具箱™,包括包装、随机空间,以及各种增强算法。金宝app您可以指定使用的算法“方法”名称-值对的观点fitcensemble,fitrensemble,或templateEnsemble。使用fitcensemblefitrensemble创建一个学习者的分类或者回归,分别。使用templateEnsemble创建一个学习者模板,通过模板fitcecoc指定合奏二进制ECOC兼职学习的学习者。

为引导聚合(装袋)和随机森林,你可以使用TreeBagger

的价值“方法” 算法 金宝app支持问题 例子
“包” 引导聚合(装袋)和随机森林([1],[2],[3]) 二进制和多级分类、回归
“子” 随机子空间([9]) 二进制和多级分类 随机子空间分类
“AdaBoostM1” 自适应提高二进制分类([5],[6],[7],[11]) 二元分类
“AdaBoostM2” 自适应提高多级分类([5]) 多类分类 预测类标签使用Classification合奏
“GentleBoost” 温柔的适应性增强([7]) 二元分类
“LogitBoost” 自适应逻辑回归([7]) 二元分类
“LPBoost” 线性规划促进([13]) 二进制和多级分类 LPBoost TotalBoost小乐队
“LSBoost” 最小二乘提振([2],[8]) 回归
“RobustBoost” 强劲的推动([4]) 二元分类 曲调RobustBoost
“RUSBoost” 随机采样提高([12]) 二进制和多级分类 与不平衡数据分类
“TotalBoost” 完全正确的提高([13]) 二进制和多级分类 LPBoost TotalBoost小乐队

了解如何选择一个合适的算法,明白了选择一个适用的合奏聚合方法

注意,使用一些算法,如LPBoost,TotalBoost,RobustBoost需要优化工具箱™。

引导聚合(装袋)和随机森林

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

对于细节的差异TreeBagger和袋装集合体(ClassificationBaggedEnsembleRegressionBaggedEnsemble),看比较TreeBagger和袋装的集合体

引导聚合(装袋)是一种整体学习。包一个弱学习者如决策树在一个数据集,生成许多引导副本数据集和成长决策树的副本。通过随机选择获得每个引导复制品NN观察与更换,N是数据集的大小。此外,每棵树的合奏可以为每一个决定分裂,随机选择预测了一种叫做随机森林[2]提高袋装树的准确性。默认情况下,预测的数量为每个分割等于随机选择的平方根的预测数量分类和回归的预测数量的三分之一。训练后的模型,你可以找到的预测响应为新数据通过使用一个训练有素的合奏预测函数。预测需要平均预测从单独的树木。

默认情况下,最小数量的观察每叶将袋装树1对分类和5回归。树木生长与默认叶大小通常是很深的。这些设置接近最优的预测能力。通常你可以种树有大叶子没有失去预测能力。这样做减少了训练和预测时间,以及内存使用训练有素的合奏。你可以控制每叶通过使用最小数量的观察“MinLeafSize”名称-值对的观点templateTreeTreeBagger。注意,您使用templateTree函数来指定的选项树学习者创建袋装合奏时使用fitcensemblefitrensemble

袋装决策树的几个特性使它们独特的算法。画NN观察替代省略了37%的观察,平均每个决策树。这些省略的观察称为“out-of-bag”观察。TreeBagger和袋装集合体(ClassificationBaggedEnsembleRegressionBaggedEnsemble)功能属性和对象,他们的名字开始oob,使用out-of-bag观察。

  • 使用oobPredict函数来估计预测能力和特性的重要性。对于每一个观察,oobPredict估计out-of-bag预测由所有树平均预测的整体观察袋。

  • 估计平均out-of-bag错误使用oobError(TreeBagger)或oobLoss(袋装集合体)。这些函数比较out-of-bag预测反应对观察到的反应所有观测用于培训。out-of-bag平均是一个真正的整体误差的无偏估计量。

  • 通过使用获得out-of-bag功能重要性的估计OOBPermutedPredictorDeltaError属性(TreeBagger)或oobPermutedPredictorImportance财产(袋装集合体)。软件随机排列在一个变量或列out-of-bag数据在时间和估计的增加out-of-bag错误由于这种排列。增加越大,越重要的特性。因此,您不需要提供测试数据的集合体,因为你可以获得可靠的估计预测能力和功能训练过程中的重要性。

TreeBagger还提供了近距离矩阵接近财产。每次两个观察落在相同的叶子的树,他们的距离增加1。正常化,和这些亲近合奏,再除以所有树木的树的数量。由此产生的矩阵是对称的对角元素等于1和非对角元素从0到1。您可以使用这个矩阵找出离群值的观察和发现集群通过多维标度的数据。

对于使用装袋示例,请参阅:

的比较TreeBagger和袋装集合体

TreeBagger和袋装集合体(ClassificationBaggedEnsembleRegressionBaggedEnsemble)分享大部分功能,但不是全部。此外,一些功能有不同的名称。

TreeBagger功能的集合体

功能 TreeBagger财产 TreeBagger方法
计算距离矩阵 接近

fillprox,mdsprox

当你估计的距离矩阵和异常值TreeBagger模型使用fillprox,MATLAB®必须符合一个n——- - - - - -n矩阵在内存中,在那里n是观测的数量。因此,如果n中度到大,避免估算距离矩阵和离群值。

计算离群值 OutlierMeasure N /一个
使用分类利润率Out-of-bag估计预测的重要性 OOBPermutedPredictorDeltaMeanMarginOOBPermutedPredictorCountRaiseMargin N /一个
合并两个乐团单独训练 N /一个 附加
分位数回归 N /一个 quantilePredict,quantileError,oobQuantilePredict,oobQuantileError
高数组支持创建合奏金宝app N /一个 有关详细信息,请参见高大的数组

不是在袋装整体特性TreeBagger

功能 描述
Hyperparameter优化 使用“OptimizeHyperparameters”名称-值对的论点。
装箱数值预测加速训练 使用“NumBins”名称-值对的论点。
代码生成的预测 训练模型后,可以生成C / c++代码,预测新数据标签。需要生成C / c++代码MATLAB编码器™。有关详细信息,请参见介绍代码生成

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

功能 TreeBagger 袋装集合体
分割标准为每个预测贡献 DeltaCriterionDecisionSplit财产 第一次的输出predictorImportance(分类)或predictorImportance(回归)
预测关联 SurrogateAssociation财产 第二输出predictorImportance(分类)或predictorImportance(回归)
Out-of-bag估计预测的重要性 OOBPermutedPredictorDeltaError财产 的输出oobPermutedPredictorImportance(分类)或oobPermutedPredictorImportance(回归)
错误(错误分类概率或均方误差) 错误oobError方法 损失oobLoss(分类)或方法损失oobLoss方法(回归)
培训更多的树木和添加他们合奏 growTrees方法 的简历(分类)或方法的简历方法(回归)
代表每一个树分类保证金 meanMarginoobMeanMargin方法 边缘oobEdge方法(分类)

此外,存在两个重要的区别,当你训练模型和预测反应:

  • 如果你通过误分类代价矩阵TreeBagger,它通过矩阵树。如果你通过误分类代价矩阵fitcensemble,它使用矩阵调整类先验概率。fitcensemble然后通过调整先验概率和默认成本矩阵树。默认成本矩阵(K)的黑眼圈(K)K类。

  • 不像损失边缘方法在ClassificationBaggedEnsemble,TreeBagger错误meanMargin方法不正常输入观察各自的先验概率类的权重。

随机子空间

使用随机子空间集合体(子空间)提高判别分析的准确性(ClassificationDiscriminant)或k最近的邻居(ClassificationKNN)分类器。子空间乐团也使用更少内存的优势比乐团预测因子,并能处理缺失值(年代)。

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

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

  • d维度数据的数量,这是列数(预测)数据矩阵X

  • n系综是学习者的数量。集n使用NLearn输入。

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

  1. 选择不重复一组随机的预测的d可能的值。

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

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

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

您可以选择创建一个弱学习者对于每一个可能的组预测的d维度。为此,集n,学习者的数量“AllPredictorCombinations”。在这种情况下,nchoosek(大小(X, 2), NPredToSample)弱的学习者。

fitcensembledownweights预测学习者在选择他们,所以后续学习者有较低的机会使用以前使用的预测。这个权重倾向于使预测更均匀地分布在学习者比统一的权重。

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

增强算法

自适应提高二进制分类

自适应增加命名AdaBoostM1是一个非常受欢迎的提高二进制分类算法。按顺序算法训练学习者。为每一个学习者与索引t,AdaBoostM1计算加权分类错误

ε 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 经验值 ( y n f ( x n ) ) ,

在哪里

  • yn∊{1 + 1}是真正的类标签。

  • wn是观察权重归一化加起来等于1。

  • f(xn)∊(-∞,+∞)预测分类得分。

观察权重wn你是最初的观察权重传递给吗fitcensemble

第二个输出预测方法的一个AdaBoostM1整体是一个分类N2矩阵分类两类和分数N观察。第二列在这个矩阵总是等于-第一列。的预测方法返回两个分数与多级模型是一致的,虽然这是多余的,因为第二列总是负的。

最常AdaBoostM1是用于决定树桩(默认)或浅树。如果提高了树桩给表现不佳,尽量设置父节点最小大小四分之一的训练数据。

默认情况下,提高算法的学习速率1。如果你将学习速率设置为较低的数字,整体学习以较慢的速度,但是可以收敛到一个更好的解决方案。0.1学习速率是一个受欢迎的选择。学习速度小于1通常被称为“收缩”。

示例使用AdaBoostM1,请参阅两种分类模型的厂商进行比较创建一个模板ECOC多级学习

自适应提高多级分类

自适应增加命名AdaBoostM2是一个扩展的AdaBoostM1多个类。而不是加权分类错误,AdaBoostM2使用加权pseudo-lossN观察和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 ) ) ,

在哪里

  • ht(xn,k)是由学习者在一步预测的信心t成类k从0(不相信)到1(高度自信)。

  • d n , k ( t ) 观察权重的步骤吗t为类k

  • yn是真正的类标签的K值。

  • 第二笔是在真正的类以外的所有类yn

解读pseudo-loss是比分类错误,但这个想法是相同的。Pseudo-loss可以用作衡量任何一个学习者的分类精度。Pseudo-loss通常表现出相同的行为作为一个加权分类误差AdaBoostM1:最初几个学习者提高合奏给pseudo-loss值低。最初几个训练步骤之后,乐团开始学习速度较慢,与pseudo-loss值接近0.5。

例如使用AdaBoostM2,请参阅预测类标签使用Classification合奏

温柔的适应性增强

温柔的适应性提高(GentleBoost,也被称为温柔演算法)相结合的特点AdaBoostM1LogitBoost。就像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)。

  • ht(xn回归模型的预测ht安装在响应值yn

个别学习者的力量削弱,加权均方误差方法1。

示例使用GentleBoost,请参阅加快培训ECOC分类器使用装箱和并行计算处理不平衡数据分类合奏中或不平等的误分类成本

自适应逻辑回归

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

n = 1 N w n 日志 ( 1 + 经验值 ( 2 y n f ( x n ) ) ) ,

在哪里

  • yn∊{1 + 1}是真正的类标签。

  • wn是观察权重归一化加起来等于1。

  • f(xn)∊(-∞,+∞)预测分类得分。

二项分类错误严重偏差分配少体重观察(观察大负的ynf(xn))。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)。

  • pt(xn)是当前整体估计概率的观察xn1级。

fitcensemble计算并存储的均方误差FitInfo整体对象的属性。的均方误差

n = 1 N d n ( t ) ( y ˜ n h t ( x n ) ) 2 ,

在哪里

  • d n ( t ) 观察权重的步骤吗t(权重加起来等于1)。

  • ht(xn回归模型的预测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 -概率的不平等δ在许多i.i.d.训练集和测试集。这个不等式表示:获得低泛化误差,减少观测的数量低于保证金θ在训练集。

LPBoost迭代最小最大化利润通过一系列线性规划问题。同样,二元性,LPBoost最小化最大边缘,边缘是加权平均利润率(见更多关于)。在每个迭代中,有更多的约束问题。因此,对于大型问题,优化问题越来越受到限制,和慢慢解决。

LPBoost通常创建乐团有许多学习者有权重的数量级小于其他学习者。因此,为了更好的让你删除不重要的乐团成员紧凑的方法重组的成员LPBoost整体重量从最大到最小。因此,您可以轻松地删除最不重要的乐团的成员使用removeLearners方法。

例如使用LPBoost,请参阅LPBoost TotalBoost小乐队

最小二乘提振

最小二乘提高(LSBoost)符合回归集合体。在每一步,整体符合新学习者之间的差异观察反应和聚合预测学习者的发展。总体符合最小化均方误差。

您可以使用LSBoost通过收缩的LearnRate参数。默认情况下这个参数设置为1以最大速度,整体学习。如果你设置LearnRate从一个值01,整体符合每一个新学生yn- - - - - -ηf(xn),在那里

  • yn是观察到的反应。

  • f(xn)是所有弱学习者成长的聚合预测观察到目前为止xn

  • η是学习速率。

示例使用LSBoost,请参阅火车回归合奏,优化了回归,合奏正规化

强劲的推动

提高算法等AdaBoostM1LogitBoost为更进一步的观察每一个提升步骤增加重量。这些权重可以变得非常大。如果发生这种情况,提高算法有时集中于几个分类错误的观察和忽略了大部分的训练数据。因此平均分类精度受到损害。在这种情况下,您可以尝试使用健壮的增加(RobustBoost)。该算法不分配几乎整个数据体重观察分类错误严重。它可以产生更好的平均分类精度。您需要一个优化工具箱使用许可证RobustBoost

不像AdaBoostM1LogitBoost,RobustBoost没有特定的损失函数最小化。相反,它最大化数量的观察与分类利润率超过一定阈值。

RobustBoost基于时间演化的列车。该算法从t= 0。在每一步,RobustBoost解决优化问题在时间Δ找到一个积极的步骤t和一个相应的积极变化的平均利润率Δ训练数据RobustBoost停止训练和出口如果这三个条件至少有一个是真的:

  • 时间t达到1。

  • RobustBoost找不到用积极更新Δ解决优化问题t和Δ

  • RobustBoost尽可能多的学习要求。

结果RobustBoost可以用于任何终止条件。估计分类精度通过交叉验证或通过使用一个独立的测试集。

得到更好的分类精度RobustBoost,你可以调整三个参数fitcensemble:RobustErrorGoal,RobustMaxMargin,RobustMarginSigma。首先,不同的值RobustErrorGoal从0到1。最大允许的值RobustErrorGoal取决于两个参数。如果你传递一个值太高,fitcensemble产生一个错误消息显示的允许范围RobustErrorGoal

例如使用RobustBoost,请参阅曲调RobustBoost

随机采样提高

随机采样提高(RUSBoost)是特别有效的不平衡数据分类,这意味着一些类的训练数据少了很多比另一个成员。罗斯代表随机抽样。该算法需要N班上,成员的数量最少的成员在训练数据,抽样的基本单位。类有更多的成员正在通过采样N观察每一个类。换句话说,如果有K类,然后,为每一个弱学习者合奏,RUSBoost需要数据的一个子集N从每个观测K类。提高过程遵循的程序自适应提高多级分类重新调整和建设。

当你构建一个RUSBoost整体,有一个可选的名称-值对RatioToSmallest。给一个向量K代表的多个值,每个值N为相关的类样本。例如,如果最小的类N= 100个成员RatioToSmallest=(2、3、4)意味着每一个弱的学习者在课堂上有200个成员1,在2班,300和400在3班。如果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 -概率的不平等δ在许多i.i.d.训练集和测试集。这个不等式表示:获得低泛化误差,减少观测的数量低于保证金θ在训练集。

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 ,

Δ是之间的区别在哪里W(n),在当前和下一代的权重,W0最初的重量分布,制服。这种优化配方使权重成为零。在每个迭代中,有更多的约束问题。因此,对于大型问题,优化问题越来越受到限制,和慢慢解决。

TotalBoost通常创建乐团有许多学习者有权重的数量级小于其他学习者。因此,为了更好的让你删除不重要的乐团成员紧凑的重新排列了的成员方法TotalBoost整体重量从最大到最小。因此你可以很容易地删除最不重要的乐团的成员使用removeLearners方法。

例如使用TotalBoost,请参阅LPBoost TotalBoost小乐队

引用

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

[2]Breiman, L。“随机森林。”机器学习45岁,2001年,页5-32。

[4]Freund, Y。“一种更健壮的增强算法。”arXiv: 0905.2138 v1, 2009。

[5]Freund, y和r e Schapire。“决策理论推广应用程序在线学习和提高。”计算机与系统科学的j .,55卷,1997年,页119 - 139。

[6]弗里德曼,J。“贪婪的近似函数:一个梯度增加机器”。统计年鉴5号,卷。29日,2001年,页1189 - 1232。

[7]弗里德曼,J。,T。Hastie, and R. Tibshirani. "Additive logistic regression: A statistical view of boosting."统计年鉴2号,卷。28日,2000年,页337 - 407。

[8]Hastie, T。,R. Tibshirani, and J. Friedman.统计学习的元素,第二版。纽约:施普林格,2008年。

[9]Ho·t·K。“随机子空间方法构造决定森林。”IEEE模式分析与机器智能,8号卷。20日,1998年,页832 - 844。

[10]Schapire, R。和y歌手。“改进提高算法使用confidence-rated预测。”机器学习,37卷,3号,1999年,页297 - 336。

[11]Schapire, r . e . et al。“提高保证金:新解释投票方法的有效性。”年报的统计数据,5号卷。26日,1998年,页1651 - 1686。

[12]塞弗特,C。,T。Khoshgoftaar, J. Hulse, and A. Napolitano. "RUSBoost: Improving classification performance when training data is skewed."19国际会议模式识别,2008年,页1 - 4。

[13]Warmuth, M。,J. Liao, and G. Ratsch. "Totally corrective boosting algorithms that maximize the margin."Proc, 23日国际。ACM Conf.在机器学习,纽约,2006年,页1001 - 1008。

另请参阅

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

相关的话题