主要内容

fitensemble

适合学习者的集体分类和回归

描述

fitensemble可以提升或袋子决策树学习者或判别分析分类器。该功能还可以培训KNN或判别分析分类器的随机子空间集合。

对于适合分类和回归合作的更简单的接口,而是使用fitcensemble.fitrensemble., 分别。还,fitcensemble.fitrensemble.提供贝叶斯优化选项。

例子

MDL.= fitensemble (资源描述responsevarname.方法NLearn学习者返回培训的合奏模型对象,其中包含拟合集合的结果NLearn分类或回归学习者(学习者)到表中的所有变量资源描述responsevarname.是响应变量的名称资源描述方法是合奏聚合方法。

例子

MDL.= fitensemble (资源描述公式方法NLearn学习者适合指定的模型公式

例子

MDL.= fitensemble (资源描述Y方法NLearn学习者对待所有变量资源描述作为预测变量。Y是不在的响应变量资源描述

例子

MDL.= fitensemble (XY方法NLearn学习者使用预测器数据列入合奏X和响应数据Y

例子

MDL.= fitensemble (___名称,值使用一个或多个指定的其他选项列车名称,值对参数和以前的任何语法。例如,您可以指定类顺序,以实现10倍交叉验证或学习率。

例子

全部收缩

估计经过训练的、增强的决策树分类集成的再替换损失。

加载电离层数据集。

加载电离层

使用Adaboost,100学习周期和整个数据集列出决策树合奏。

classtreeens = fitysemble(x,y,'adaboostm1', 100,'树');

Classtreeens.是训练有素的分类素..合奏分类器。

确定累积重新提交损失(即,培训数据中标签的累积错误分类错误)。

rsloss = Resubloss(Classtreeens,'模式''累积');

rsLoss是一个100×1的矢量,其中元素k包含第一个后的重新提交损失k学习周期。

绘制累积的重新提交损失,对学习周期的数量。

情节(RSLOSS);Xlabel(“学习周期的数量”);ylabel(“Resubstitution损失”);

一般情况下,随着训练分类集成中决策树数量的增加,再替换损失减小。

重述损失的减少可能表明该软件明智地培训了该集合。但是,您无法通过这种减少推断集合的预测力。为了测量合奏的预测力,估计概括误差:

  1. 将数据随机划分为训练集和交叉验证集。通过指定'octout',holdoutpropoft当您使用培训集合时fitensemble

  2. 通过训练有素的合奏Kfoldloss.,估计泛化误差。

使用训练有素的提升的回归树系列来预测汽车的燃油经济性。选择圆柱体的数量,汽缸,马力和重量作为预测因子。然后,使用较少的预测器培训合奏,并将其对第一集合的样本预测精度进行比较。

加载carsmall数据集。将培训数据存储在表格中。

加载carsmall台=表(汽缸、排量、马力、重量、MPG);

指定回归树模板,该模板使用代理分割来提高存在时的预测准确性价值观。

t = templateTree ('代理'“上”);

使用LSBoost和100个学习周期训练回归树集成。

mdl1 = fitysemble(tbl,“英里”'lsboost',100,t);

MDL1是训练有素的回归回归合奏。因为MPG.是Matlab®工作区中的变量,您可以通过输入获取相同的结果

mdl1 = fitysemble(tbl,mpg,'lsboost',100,t);

使用训练有素的回归集合来预测具有200立方英尺的四缸汽车的四缸汽车的燃油经济性,150马力和重量为3000磅。

predmpg = predict(mdl1,[4 200 150 3000])
predmpg = 22.8462.

具有这些规格的汽车的平均燃油经济性是21.78英里每加仑。

使用中的所有预测器训练一个新的集合资源描述除了移位

公式='MPG ~气缸+马力+重量';mdl2 = fitysemble(tbl,公式,'lsboost',100,t);

比较两者的再取代mseMDL1MDL2.

MSE1 = RERUBLOS(MDL1)
mse1 = 6.4721
MSE2 = RERUBLOS(MDL2)
mse2 = 7.8599

所有预测因子列车的集合的样本MSE是较低的。

估计训练,提升决策树的泛化误差。

加载电离层数据集。

加载电离层

使用AdaboostM1,100学习周期和随机选择的一半数据列出决策树集合。软件使用剩余的一半验证算法。

RNG(2);重复性的%classtreeens = fitysemble(x,y,'adaboostm1', 100,'树'......'坚持',0.5);

Classtreeens.是训练有素的分类素..合奏分类器。

确定累积泛化误差,即验证数据中标签的累积错误分类错误)。

generror = kfoldloss(classtreeens,'模式''累积');

generror.是一个100×1的矢量,其中元素k在第一个之后包含泛化错误k学习周期。

在学习周期的数量上绘制泛化误差。

plot(generror);Xlabel(“学习周期的数量”);ylabel(泛化误差的);

当25个弱学习者组成集合分类器时,累积泛化误差减少到大约7%。

您可以在决策树的集合中控制树木的深度。您还可以使用使用该决策树二进制学习者的Ecoc模型中的树深度来控制树形深度maxnumsplits.minleafsize., 或者蛋白化名称值对参数。

  • 当套用决策树时,fitensemble默认情况下变得深深的决策树。您可以成长较浅的树木以降低模型复杂性或计算时间。

  • 当提升决策树时,fitensemble在默认情况下生长树桩(一棵有一个分叉的树)。你可以种植更深的树以获得更好的精度。

加载carsmall数据集。指定变量加速度移位马力, 和重量作为预测因子,和MPG.作为响应。

加载carsmallX = [加速位移马力重量];y = mpg;

用于增强回归树的树深度控制器的默认值为:

  • 1为了maxnumsplits..这个选择变得困难重重。

  • 5为了minleafsize.

  • 10.为了蛋白化

搜索最佳分割数:

  1. 火车一套合奏。呈指数增加后续组合的最大分裂数最多n- 1分,其中n是训练样本大小。此外,将每个集合的学习率降低1至0.1。

  2. 交叉验证集成。

  3. 估计每个合奏的交叉验证的均衡错误(MSE)。

  4. 比较交叉验证的mses。具有最低一个最低的集合最佳,并指示数据集的最佳最大拆分数,树数和学习率。

生长和交叉验证深度回归树和树桩。指定使用代理分割,因为数据包含缺少值。这些用作基准。

mdldeep = fitrtree(x,y,'横向'“上”“MergeLeaves”'离开'......“MinParentSize”,1,'代理'“上”);mdlstump = fitrtree(x,y,'maxnumsplits',1,'横向'“上”'代理'“上”);

使用150个回归树培训提升乐队。交叉使用5倍交叉验证验证集合。使用序列中的值改变最大分割数 2 0 2 1 2 , 在哪里是这样的 2 不大于n- 1,n是训练样本大小。对于每个变型,将学习速率调整为集合{0.1,0.25,0.5,1}中的每个值;

n =大小(X, 1);M =底(log2(n - 1));Lr = [0.1 0.25 0.5 1];maxNumSplits = 2。^ (0:m);numTrees = 150;Mdl =细胞(元素个数(maxNumSplits),元素个数(lr));rng (1);重复性的%为了k = 1:元素个数(lr);为了j = 1:numel(maxnumsplits);t = templateTree ('maxnumsplits',maxnumsplits(j),'代理'“上”);Mdl {j, k} = fitensemble (X, Y,'lsboost',numtrees,t,......'类型''回归''kfold',5,'学习',lr(k));结束结束

计算每个合奏的交叉验证的MSE。

kflall = @(x)kfoldloss(x,'模式'“累积”);errorcell = cellfun(kflall,mdl,'制服'、假);error = replaceall (cell2mat(errorCell),[numTrees nummel (maxnumsplents) nummel (lr)]); / /重新命名errorDeep = kfoldLoss (MdlDeep);errorStump = kfoldLoss (MdlStump);

绘制交叉验证的MSE如何表现为集合中的少数集合,深树和树桩的树木的数量增加。绘制相同曲线中的学习速率的曲线,并为不同的树木复杂性绘制单独的图。选择树复杂度级别的子集。

mnsplot = [1 round(numel(maxnumsplits)/ 2)numel(maxnumsplits)];数字;为了k = 1:3;子图(2,2,k);绘图(挤压(错误(:,mnsplot(k),:)),'行宽',2);轴;抓住;H = GCA;绘图(H.xlim,[Errordeep Errordeep],“。b”'行宽',2);绘图(H.xlim,[errorstump errorstump],“r”'行宽',2);绘图(H.xlim,min(min(错误(:,mnsplot(k),:)))。* [1 1],' -  k');h.YLim = [10 50];包含'树的数量';ylabel.'交叉验证的MSE';标题(Sprintf(“MaxNumSplits = % 0.3 g”,maxnumsplits(mnsplot(k)))))));抓住离开结束;hl = legend([cellstr(num2str(lr','学习率=%0.2f'));......'深树''stump'“最小MSE。”]);HL.Position(1)= 0.6;

每条曲线都包含一个最小的交叉验证MSE,该MSE发生在集合中最优树的数量上。

确定总体上最低MSE的最大分裂数,树木数量和学习率。

[minErr, minErrIdxLin] = min(错误(:));[idxNumTrees, idxMNS idxLR] = ind2sub(大小(错误),minErrIdxLin);流('\ nmin。MSE =%0.5F'minErr)
分钟。MSE = 18.42979.
流('\ noptimal参数值:\ nnum。树木=%d',idxnumtrees);
最优参数值:Num. Trees = 1
流('\ nmaxnumsplits =%d \ nlearning率=%0.2f \ n'......maxnumsplits(idxmns),lr(idxlr))
学习速率= 1.00

要了解优化这个集成的不同方法,请参见优化增强回归集成

输入参数

全部收缩

用于培训模型的示例数据,指定为表。每一排资源描述对应于一个观察,并且每列对应于一个预测变量。资源描述可以包含响应变量的一个附加列。不允许使用除了字符向量的单元格阵列之外的多列变量和单元阵列。

  • 如果资源描述包含响应变量,如果希望使用所有剩余变量作为预测器,则使用responsevarname.

  • 如果资源描述包含响应变量,并且您希望将剩余变量的子集仅用为预测器,然后使用公式

  • 如果资源描述不包含响应变量,然后使用响应数据指定使用Y.响应变量的长度和行的行数资源描述必须是相等的。

笔记

为节省内存和执行时间,请供应XY而不是资源描述

数据类型:桌子

中的响应变量名,指定为响应变量的名称资源描述

您必须指定responsevarname.作为字符矢量或字符串标量。例如,如果tbl.y.然后是响应变量,然后指定responsevarname.作为'是'.否则,fitensemble对待所有列资源描述作为预测变量。

响应变量必须是分类,字符或字符串阵列,逻辑或数字矢量或字符向量的单元格数组。如果响应变量是字符数组,则每个元素必须对应于数组的一行。

有关分类,您可以使用该分类指定类的顺序一会名称-值对的论点。否则,fitensemble确定类顺序,并将其存储在Mdl。一会

数据类型:char|细绳

响应变量的解释模型和预测变量的子集,指定为表单中的字符向量或字符串标量“Y ~ X1 + X2 + X3”.在这种形式,Y表示响应变量,和X1X2, 和X3表示预测变量。

中指定变量的子集资源描述作为训练模型的预测器,使用一个公式。如果你指定一个公式,那么软件不使用任何变量资源描述没有出现在公式

公式中的变量名称必须是变量名称资源描述tbl.properties.variablenames.)和有效的matlab®身份标识。

您可以验证变量名称资源描述通过使用isvarname.函数。以下代码返回逻辑1真的)对于具有有效变量名的每个变量。

cellfun(@ isvarname,tbl.properties.variablenames)
如果变量名在资源描述无效,然后使用它来转换它们matlab.lang.makevalidname.函数。
tbl.properties.variablenames = matlab.lang.makevallname(tbl.properties.variablenames);

数据类型:char|细绳

预测器数据,指定为数字矩阵。

每行对应于一个观察,并且每个列对应于一个预测变量。

的长度Y和行的数量X必须是相等的。

以它们的外观顺序指定预测器的名称X,可以使用PredictorNames名称-值对的论点。

数据类型:单身的|双倍的

响应数据,指定为分类,字符或字符串阵列,逻辑或数字矢量或字符向量的小区数组。每个条目Y对观察的响应或标签是否在相应的行中X或者资源描述.的长度Y和行的数量X或者资源描述必须是相等的。如果响应变量是字符数组,则每个元素必须对应于数组的一行。

  • 的分类,Y可以是任何受支持的数据类型。金宝app属性指定类的顺序一会名称-值对的论点。否则,fitensemble确定类顺序,并将其存储在Mdl。一会

  • 回归,Y必须是数值列向量。

数据类型:分类|char|细绳|逻辑|单身的|双倍的|细胞

合奏聚合方法,指定为此列表中的方法名称之一。

  • 有关两个类的分类:

    • 'adaboostm1'

    • 'logitboost'

    • “GentleBoost”

    • 'robustboost'(需要优化工具箱™)

    • “LPBoost”(需要优化工具箱)

    • “TotalBoost”(需要优化工具箱)

    • 'rusboost'

    • “子”

    • “包”

  • 有三个或以上类别的分类:

    • 'adaboostm2'

    • “LPBoost”(需要优化工具箱)

    • “TotalBoost”(需要优化工具箱)

    • 'rusboost'

    • “子”

    • “包”

  • 回归:

    • 'lsboost'

    • “包”

如果您指定“方法”,“包”,然后使用该问题类型指定问题类型类型名称-值对参数,因为您可以指定“包”用于分类和回归问题。

有关集合聚合算法和示例的详细信息,请参阅合奏算法选择适用的集成聚合方法

集合学习周期数,指定为正整数或'AllPredictorCombinations'

  • 如果您指定了一个正整数,那么,在每个学习周期,软件都会为每个模板对象列举一个弱的学习者学习者.因此,软件列车nlearn * numel(学习者)学习者。

  • 如果您指定'AllPredictorCombinations'然后设置了方法“子”并指定一个学习者只在学习者.通过这些设置,软件列车获取学习者以获得所有可能的预测器组合NPredToSample一次。因此,软件列车nchoosek.(大小(x,2),npredtosample)学习者。

该软件使用所有培训的学习者组成该集合并将其存储在内MDL.TROAD

有关详细信息,请参见提示

数据类型:单身的|双倍的|char|细绳

弱学习者在集合中使用,指定为弱学习者名称,弱学习者模板对象或弱学习者模板对象的单元格阵列。

弱学习者 学习者名称 模板对象创建功能 方法设置
判别分析 “判别” 模板异教徒 推荐“子”
k最近的邻居 “资讯” templateknn. 为了“子”只有
决策树 '树' Templatetree. 所有方法除外“子”

有关详细信息,请参见NLearn提示

例子:对于由两种类型的分类树组成的集合,供应{t1 t2}, 在哪里T1.T2.是分类树模板。

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。姓名是参数名称和价值是相应的价值。姓名必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'横向','上','学习',0.05指定实现10倍交叉验证并使用0.05作为学习率。
一般集合选项

全部收缩

分类预测器列表,指定为逗号分隔的配对组成“CategoricalPredictors”和此表中的值之一。

价值 描述
正整数矢量 向量中的每个条目是与预测器数据列对应的索引值(X或者资源描述)包含一个分类变量。
逻辑矢量 一个真的条目意味着相应的预测函数数据(X或者资源描述)是一个分类变量。
字符矩阵 矩阵的每一行是预测器变量的名称。名称必须与条目匹配PredictorNames.用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。
字符向量的字符串数组或单元格数组 数组中的每个元素是预测器变量的名称。名称必须与条目匹配PredictorNames
'全部' 所有预测因素都是分类的。

规格“CategoricalPredictors”如果:

  • “学习者”指定树学习者。

  • “学习者”指定k-最接近的学习者,所有的预测都是绝对的。

每个学习者以与学习者对应的拟合函数相同的方式识别和对待分类预测器。看到“CategoricalPredictors”Fitcknn.为了k- 最初的学习者和“CategoricalPredictors”fitctree对于树学习者。

例子:'patericalpricictors','全部'

数据类型:单身的|双倍的|逻辑|char|细绳|细胞

打印输出频率,指定为逗号分隔对组成'纳丁'和一个正整数或'离开'

来追踪号码弱的学习者或者折叠fitensemble到目前为止培训,指定正整数。也就是说,如果指定正整数

  • 不需要指定任何交叉验证选项(例如,CrossVal), 然后fitensemble每次完成培训时向命令行显示一条消息弱学习者。

  • 然后是交叉验证选项fitensemble每次完成培训时向命令行显示一条消息折叠。

如果您指定'离开', 然后fitensemble当它完成对弱学习者的训练时,不会显示一个信息。

提示

在大型数据集上培训许多弱学习者的集合时,请指定一个正整数纳丁

例子:'nprint',5

数据类型:单身的|双倍的|char|细绳

预测值变量名称,指定为逗号分隔的配对“PredictorNames”以及唯一字符向量的唯一名称或单元格数组的字符串数组。功能的功能“PredictorNames”这取决于你提供培训数据的方式。

  • 如果你提供XY,然后你可以使用“PredictorNames”为中的预测变量指定名称X

    • 名称的顺序PredictorNames必须对应于列序X.那是,predictornames {1}是名称x(:1)predictornames {2}是名称X(:,2), 等等。还,尺寸(x,2)numel(预测的人)必须是相等的。

    • 默认情况下,PredictorNames{'x1','x2',...}

  • 如果你提供资源描述,然后你可以使用“PredictorNames”选择用于培训的预测变量。那是,fitensemble仅使用中的预测变量PredictorNames以及训练过程中的反应变量。

    • PredictorNames必须是一个子集tbl.properties.variablenames.并且不能包含响应变量的名称。

    • 默认情况下,PredictorNames包含所有预测变量的名称。

    • 一个好的实践是指定使用这两种方法进行训练的预测器“PredictorNames”或者公式,但不是两者都有。

例子:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}

数据类型:细绳|细胞

响应变量名称,指定为逗号分隔的配对组成“ResponseName”以及字符向量或字符串标量。

  • 如果你提供Y,然后你可以使用“ResponseName”为响应变量指定名称。

  • 如果你提供responsevarname.或者公式,然后你不能使用“ResponseName”

例子:“ResponseName”、“响应”

数据类型:char|细绳

监督学习类型,指定为逗号分隔对组成'类型''分类'或者'回归'

  • 如果方法'包',则监督学习类型是模糊的。因此,指定类型袋装时。

  • 否则,为方法确定监督学习类型。

例子:'类型','分类'

交叉验证选项

全部收缩

交叉验证标志,指定为逗号分隔对组成“Crossval”“上”或者'离开'

如果您指定“上”,然后软件实现10倍交叉验证。

要覆盖此交叉验证设置,请使用以下名称-值对参数之一:CVPartition.坚持kfold., 或者忽略.要创建交叉验证的模型,您只能使用一个交叉验证名称值对参数。

或者,通过通过后来交叉验证MDL.crossval或者crossval

例子:'横向','开'

交叉验证分区,指定为逗号分隔对组成'cvpartition'和一个CVPartition.由...创建的分区对象CVPartition..分区对象指定跨验证的类型和培训和验证集的索引。

要创建交叉验证的模型,只能使用这四个名称值对参数中的一个:CVPartition.坚持kfold., 或者忽略

例子:假设您使用使用的500个观察中的5倍交叉验证的随机分区本量利= cvpartition(500年,“KFold”,5).然后,您可以通过使用指定交叉验证的模型'cvpartition',cvp

用于阻止验证的数据的分数,指定为逗号分隔的对组成'坚持'和范围内的标量值(0,1)。如果您指定‘坚持’,p,则软件完成以下步骤:

  1. 随机选择和保留P * 100.数据的百分比作为验证数据,并使用其余数据训练模型。

  2. 将经过训练的小型模型存储在训练有素交叉验证模型的性质。

要创建交叉验证的模型,只能使用这四个名称值对参数中的一个:CVPartition.坚持kfold., 或者忽略

例子:'持有',0.1

数据类型:双倍的|单身的

要在交叉验证的模型中使用的折叠数,指定为逗号分隔的对,由'kfold'和正整数值大于1.如果您指定KFold, k,则软件完成以下步骤:

  1. 随机分区数据k套。

  2. 对于每个设置,保留设置为验证数据,并使用其他培训模型k- 1套。

  3. 存储k紧凑,训练有素的模型在一个细胞中k- 1个细胞矢量训练有素交叉验证模型的性质。

要创建交叉验证的模型,只能使用这四个名称值对参数中的一个:CVPartition.坚持kfold., 或者忽略

例子:“KFold”,5

数据类型:单身的|双倍的

留下一张交叉验证标志,指定为逗号分隔的配对组成“Leaveout”“上”或者'离开'.如果您指定'留下','开',那么,对于每一个n观察(在哪里n是不包括缺失观察的观察人数,在NumObservations该模型的属性),软件完成以下步骤:

  1. 保留观测数据作为验证数据,并使用其他数据训练模型n- 1观察。

  2. 存储n紧凑,训练有素的型号在细胞中n- 1个细胞矢量训练有素交叉验证模型的性质。

要创建交叉验证的模型,只能使用这四个名称值对参数中的一个:CVPartition.坚持kfold., 或者忽略

例子:'留下','开'

其他分类或回归选项

全部收缩

要用于训练的类名,指定为逗号分隔对,由“类名”以及类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。一会必须具有相同的数据类型Y

如果一会是一个字符数组,那么每个元素都必须对应于数组的一行。

“类名”:

  • 在培训期间订购课程。

  • 指定与类顺序对应的任何输入或输出参数尺寸的顺序。例如,使用“类名”指定尺寸的顺序成本或返回的分类分数的列顺序预测

  • 选择培训类的子集。例如,假设所有不同类别名称的集合Y{'a','b','c'}.使用课程的观测训练模型'一种''C'仅限,指定'classnames',{'a','c'}

的默认值一会是所有不同类名的集合Y

例子:“类名”,{' b ', ' g '}

数据类型:分类|char|细绳|逻辑|单身的|双倍的|细胞

错误分类成本,指定为逗号分隔的配对组成'成本'和平方矩阵或结构。如果您指定:

  • 的方阵成本, 然后成本(i,j)是将一个点分类为课程的成本j如果它的真实课程是.也就是说,行对应于真实类,列对应于预测类。指定相应行和列的类顺序成本,还指定了一会名称-值对的论点。

  • 结构年代,然后它必须有两个字段:

    • S.Classnames.,其中包含类名作为与相同数据类型的变量Y

    • S.ClassificationCosts,其中包含具有排序的行和列的成本矩阵S.Classnames.

默认为那些(K) - 眼睛(K, 在哪里K是不同类的数量。

笔记

fitensemble用途成本调整指定的先前类概率事先的.然后,fitensemble使用调整后的先验概率进行训练,并将代价矩阵重置为默认值。

例子:'Cost',[0 1 2;1 0 2;2 2 0)

数据类型:双倍的|单身的|结构体

每个类的先前概率,指定为逗号分隔的配对组成“之前”和这个表中的一个值。

价值 描述
'经验' 类先验概率是类的相对频率Y
'制服' 所有类的先前概率等于1 /K, 在哪里K是课程的数量。
数值向量 每个元素都是现有概率的类。根据符合元素Mdl。一会或使用该订单指定订单一会名称-值对的论点。该软件将其总和的元素标准化为1
结构数组

结构年代两个字段:

  • S.Classnames.包含类名作为与相同类型的变量Y

  • S.ClassProbs.包含相应的先前概率的向量。该软件将其总和的元素标准化为1

fitensemble正常化现有概率事先的求和为1。

例子:结构(“类名”,{{setosa,杂色的,‘virginica}}, ClassProbs, 1:3)

数据类型:char|细绳|双倍的|单身的|结构体

观察权重,指定为逗号分隔的配对组成'重量'和一个正数的数字向量或变量名资源描述.该软件对每一行的观察结果进行权衡X或者资源描述对应的值在权重.的大小权重必须等于X或者资源描述

如果您将输入数据指定为表资源描述, 然后权重可以是变量的名称资源描述包含数字矢量。在这种情况下,您必须指定权重作为字符矢量或字符串标量。例如,如果权重向量W存储为TBL.W.,然后将其指定为'W'.否则,该软件将处理所有列资源描述, 包含W,作为预测器或训练模型时的响应。

软件规范化权重求和为各类的先验概率值。

默认情况下,权重那些(n1), 在哪里n是观察人数X或者资源描述

数据类型:双倍的|单身的|char|细绳

用于提升方法和袋装的采样选项

全部收缩

为每个弱学习者重组的培训的分数,指定为逗号分隔的对组成“FResample”和(0,1]的正标量)。

使用“FResample”,指定'包'为了方法或集合重组“上”

例子:“FResample”,0.75

数据类型:单身的|双倍的

指定用替换采样的标志,指定为包括的逗号分隔对“替换”'离开'或者“上”

  • 为了“上”,软件将培训观察与更换进行样本。

  • 为了'离开',软件在没有替代的情况下对培训观察进行样本。如果你设置重组“上”然后,假设均匀重量的软件样本培训观察。如果还指定了升级方法,则软件通过重新传递观察提升。

除非你设置方法'包'或集合重组“上”代替没有效果。

例子:'替换','关闭'

指示重新取样的标志,指定为由逗号分隔的对'重新取出''离开'或者“上”

  • 如果方法是一种升压方法,然后:

    • '重新成立','上'指定使用更新的权重示出培训观察作为多项采样概率。

    • '重新取决','关闭'(默认)指定在每个学习迭代中重新重复观察。

  • 如果方法'包', 然后'重新取出'必须是“上”.该软件将培训观测分数斥排(见FResample)有或没有替代(见代替)。

如果您指定重新取样使用重组,则对整个数据集进行重新采样是一种良好的实践。也就是说,使用1的默认设置FResample

adaboostm1,adaboostm2,logitboost,spandboost和lsboost方法选项

全部收缩

收缩的学习速率,指定为逗号分隔对,由间隔(0,1]中的数字标量组成。

使用收缩训练合奏,套装LearnRate值小于1例如,0.1是一个受欢迎的选择。使用收缩培训一个合奏需要更多的学习迭代,但往往会实现更好的准确性。

例子:“LearnRate”,0.1

数据类型:单身的|双倍的

Rusboost方法选项

全部收缩

收缩的学习速率,指定为逗号分隔对,由间隔(0,1]中的数字标量组成。

使用收缩训练合奏,套装LearnRate值小于1例如,0.1是一个受欢迎的选择。使用收缩培训一个合奏需要更多的学习迭代,但往往会实现更好的准确性。

例子:“LearnRate”,0.1

数据类型:单身的|双倍的

采样比例相对于最低代表的类,指定为包括的逗号分隔对'ratiotosmallest'和一个数字标量或数字矢量的正值,长度等于训练数据中的不同类的数量。

假设有K培训数据中的课程和最低代表的类对训练数据的观察。

  • 如果指定正数字标量年代, 然后fitensemble样本年代每个类的观察,即对每个类使用相同的抽样比例。有关详细信息,请参见算法

  • 如果指定数值向量S1S2,......,SK., 然后fitensemble样本SI.课堂观察= 1,......,K.元素ratiotosmallest.与使用中指定的类名的顺序对应一会(看提示)。

默认值是那些(K1),指定样本每个班级的观察。

例子:'ratiotosmallest',[2,1]

数据类型:单身的|双倍的

LPBoost和全腾料方法选项

全部收缩

保证金精度控制收敛速度,指定为逗号分隔对组成'MarginPrecision'以及区间[0,1]内的数字标量。MarginePrecision.影响收敛所需的升降迭代的数量。

提示

要使用多个学习者来训练集合,请指定一个较小的值MarginePrecision..对于使用少数其他学习者进行培训,请指定大值。

例子:'marginprecision',0.5

数据类型:单身的|双倍的

robustboost方法选项

全部收缩

目标分类错误,指定为逗号分隔对组成'robusterrorgoal'和一个非负数字标量。可能值的上限取决于值Robustmarginsigma.robustmaxmargin..但是,上限不能超过1

提示

对于一个特定的训练集,通常有一个最佳的范围Robirusterrorgoal..如果将其设置得太低或太高,则软件可以产生具有差的分类精度差的模型。尝试交叉验证以搜索适当的值。

例子:'robusterrorgoal',0.05

数据类型:单身的|双倍的

分类保证金分布在培训数据上传播,指定为包括的逗号分隔对“RobustMarginSigma”和一个正数标量。在指定Robustmarginsigma.,咨询文献抢劫例如,[19]

例子:'robustmarginsigma',0.5

数据类型:单身的|双倍的

训练数据中的最大分类裕度,指定为逗号分隔对,由“RobustMaxMargin”和一个非负数字标量。该软件最大限度地减少了下面具有分类利润的培训数据中的观测次数robustmaxmargin.

例子:'robustmaxmargin',1

数据类型:单身的|双倍的

随机子空间方法选项

全部收缩

为每个随机子空间学习者采样的预测器数量,指定为逗号分隔对组成“NPredToSample”一个区间为1的正整数,p, 在哪里p为预测变量的个数(尺寸(x,2)或者尺寸(tbl,2))。

数据类型:单身的|双倍的

输出参数

全部收缩

培训的合奏模型,作为此表中的模型对象之一返回。

模型对象 类型设置 指定任何交叉验证选项? 方法设置 重组设置
ClassificationBaggedensemble. '分类' 没有 “包” “上”
分类素.. '分类' 没有 用于分类的任何合奏聚合方法 '离开'
分类分类型 '分类' 是的 任何分类集合 - 聚合方法 '离开'或者“上”
RegressionBaggedEnsemble '回归' 没有 “包” “上”
回归 '回归' 没有 'lsboost' '离开'
回归分役部门 '回归' 是的 'lsboost'或者“包” '离开'或者“上”

控制交叉验证的名称值对参数是CrossVal坚持kfold.忽略, 和CVPartition.

引用MDL.,使用点符号。例如,要访问或显示尚未交叉验证的集成的弱学习器模型对象的细胞向量,请输入MDL.TROAD在命令行。

提示

  • NLearn可能会因几十几到几千而异。通常,具有良好预测力的集合需要几百到几千弱的学习者。但是,您不必立即为这一循环训练合奏。您可以开始越来越几十几名学习者,检查集合性能,然后,如有必要,使用更多的学习者使用的简历对于分类问题,或者的简历为了回归问题。

  • 合奏性能取决于集合设置和弱学习者的设置。也就是说,如果使用默认参数指定弱的学习者,则集合可以表现不佳。因此,与集合设置一样,使用模板调整弱学习者的参数是好的做法,并选择最小化泛化误差的值。

  • 如果您指定重新取样使用重组,则对整个数据集进行重新采样是一种良好的实践。即使用默认设置1为了FResample

  • 在分类问题(即,类型'分类'):

    • 如果集合-聚合方法(方法)是'包'和:

      • 误分类成本(成本)对于包装内样本,软件已经过度损失的阶级的独特观察,这是高度不平衡的。

      • 类先验概率(事先的)是高度倾斜的,软件对具有很大先验概率的班级的独特观察进行抽样。

      对于较小的样本尺寸,这些组合可以导致来自具有较大惩罚或现有概率的袋子外观测的低相对频率。因此,估计的袋误差是高度变化的,并且可能难以解释。为避免大量估计的袋式误差差异,特别是对于小样本尺寸,请使用更平衡的错误分类成本矩阵成本或使用较少的先前概率向量使用事先的

    • 由于某些输入和输出参数的顺序对应于培训数据中的不同类,因此使用该课程指定类顺序是良好的做法一会名称-值对的论点。

      • 要快速确定类顺序,请从未分类的训练数据中删除所有观察(即,具有缺少标签),获取并显示所有不同类别的数组,然后指定数组一会.例如,假设响应变量(Y)是标签的细胞阵列。此代码指定变量中的类顺序Classnames.

        Ycat =分类(Y);一会=类别(Ycat)
        分类分配<定义>未分类的观察和类别排除<定义>从它的产出。因此,如果使用此代码用于标签的单元格或分类数组的类似代码,则您不必删除缺少标签的观察,以获取不同类的列表。

      • 要指定从最低表示的标签到最高表示的标签的类顺序,那么要快速确定类顺序(如前面的项目符号所示),但是在将列表传递给之前,要按频率排列列表中的类一会.在前面的例子中,这段代码指定了类从最低到最多的顺序Classnameslh.

        Ycat =分类(Y);ClassNames =类别(YCAT);FREQ = COUNTCATS(YCAT);[〜,IDX] =排序(频率);classnameslh = classNames(IDX);

算法

  • 关于集合聚合算法的详细信息,请参见合奏算法

  • 如果您指定方法成为促进算法和学习者决策树,然后软件增长树桩默认情况下。决策树桩是连接到两个终端,叶节点的一个根节点。您可以通过指定来调整树深度maxnumsplits.minleafsize., 和蛋白化名称 - 值对参数使用Templatetree.

  • fitensemble通过过采样的超采样产生内部样本,具有大的错误分类成本和具有小错误分类成本的欠采样类。因此,袋袋样品具有较少的分类成本和具有小错误分类成本的课程的观察的较少观察。如果您使用小数据集和高度倾斜的成本矩阵训练分类集合,那么每类的袋子外观测的数量可能很低。因此,估计的袋误差可能具有大的方差并且可能难以解释。对于具有大的概率的课程,可以发生同样的现象。

  • 对于RUSBoost集成聚合方法(方法),名称值对参数ratiotosmallest.指定关于最低代表的类的每个类的采样比例。例如,假设培训数据中有两个类:一个B一个有100个观察和B有10个观察结果。另外,假设代表最低的类对训练数据的观察。

    • 如果你设置'ratiotosmallest',2, 然后年代2 * 1020..最后,fitensemble使用来自课程的20个观察来列车一个和来自课程的20个观察B.如果你设置'ratiotosmallest',[2 2],则得到相同的结果。

    • 如果你设置'ratiotosmallest',[2,1], 然后S12 * 1020.S21 * 1010..最后,fitensemble使用来自课程的20个观察来列车一个和课程的10个观察B

  • 对于决策树的集合,以及双核及以上系统,fitensemble使用英特尔并行化培训®线程构建块(TBB)。有关英特尔TBB的详细信息,请参阅https://software.intel.com/en-us/intel-tbb.

参考文献

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

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

[3] Freund,Y。“更强大的提升算法。”ARXIV:0905.2138V1,2009年。

[4]弗氏,Y.和R. E. Schapire。“关于在线学习的决策概括和促进申请。”计算机与系统科学博士,第55卷,119-139页,1997。

[5] Friedman, J. <贪婪函数近似:梯度增压机>统计年鉴,卷。29,第5页,第5页,PP。1189-1232,2001。

Friedman, J., T. Hastie,和R. Tibshirani。加性逻辑回归:助推的统计学观点统计年鉴,卷。28,2,PP。337-407,2000。

[7] Hastie,T.,R. Tibshirani和J. Friedman。统计学习的要素section edition,施普林格,New York, 2008。

[8] HO,T.K。“构建决策林的随机子空间方法。”图案分析和机器智能的IEEE交易,卷。20,第8页,第8页,第832-844,1998。

[9] Schapire,R. E.,Y.Freund,P. Bartlett和W.S.李。“提高余量:投票方法有效性的新解释。”统计年鉴,卷。26,5,PP。1651-1686,1998。

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

[11] Warmuth,M.,J. Liao和G. Ratsch。“完全纠正促进算法,最大化边缘。”Proc, 23日国际。Conf. on Machine Learning, ACM,纽约,页1001-1008,2006。

介绍了R2011a