主要内容

Fitysemble.

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

描述

Fitysemble.可以提升或包决策树学习者或判别分析分类器。该函数还可以训练KNN或判别分析分类器的随机子空间集成。

对于适合分类和回归集成的简单接口,请使用菲特森布尔fitrensemble,分别。同时,菲特森布尔fitrensemble提供贝叶斯优化选项。

例子

Mdl= fitensemble (资源描述ResponseVarName方法NLearn学习者返回一个训练过的集成模型对象,该对象包含拟合集合的结果NLearn分类或回归学习者(学习者)到表中的所有变量资源描述ResponseVarName中是响应变量的名称吗资源描述方法是集合-聚合方法。

例子

Mdl= fitensemble (资源描述公式方法NLearn学习者符合指定的型号公式

例子

Mdl= fitensemble (资源描述Y方法NLearn学习者在中处理所有变量资源描述作为预测变量。Y是不在中的响应变量资源描述

例子

Mdl= fitensemble (XY方法NLearn学习者使用输入的预测数据训练集合X和响应数据Y

例子

Mdl= fitensemble (___名称,价值使用一个或多个指定的附加选项训练集合名称,价值Pair参数和前面的任何语法。例如,您可以指定类顺序,以实现10倍交叉验证,或学习率。

例子

全部崩溃

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

加载电离层数据集。

负载电离层

使用AdaBoost、100个学习周期和整个数据集训练决策树集合。

ClassTreeEns = fitensemble (X, Y,“AdaBoostM1”, 100,“树”);

ClassTreeEns是一个培训ClassificationEnsemble集成分类器。

确定累计再替换损失(即训练数据中标签的累计误分类误差)。

rsLoss = resubLoss (ClassTreeEns,“模式”“累积”);

rsLoss一个100乘1的向量,元素在哪里k包含第一次替换后的重新替换损失k学习周期。

绘制学习周期内的累积再替代损失。

情节(rsLoss);包含('学习周期数'); 伊拉贝尔(“Resubstitution损失”);

图中包含一个轴对象。axes对象包含类型为line的对象。

通常,随着训练有素的分类集合中的决策树的数量增加,重组损失减少了。

再置换损失的减少可能表明软件对集合进行了明智的训练。但是,您无法通过这种下降推断出集合的预测能力。要测量集合的预测能力,请通过以下方法估计泛化误差:

  1. 将数据随机划分为训练集和交叉验证集。通过指定‘坚持’,holdoutProportion当你使用Fitysemble.

  2. 把训练有素的乐团交给kfoldLoss,用来估计泛化误差。

使用经过训练的、增强的回归树集合来预测汽车的燃油经济性。选择气缸的数量,由气缸排开的体积,马力和重量作为预测器。然后,使用较少的预测器训练集成,并比较其样本内预测精度与第一个集成。

加载Carsmall.数据集。将训练数据存储在一个表中。

负载Carsmall.台=表(汽缸、排量、马力、重量、MPG);

指定使用代理分裂的回归树模板,以提高存在的预测准确性值。

t = templatetree(“代孕”“上”);

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

Mdl1 = fitensemble(资源描述,“英里”“LSBoost”100年,t);

Mdl1是一个培训RegressionEnsemble回归合奏。因为英里/加仑是MATLAB®Workspace中的变量,可以通过输入

Mdl1 = fitensemble (MPG,台“LSBoost”,100年,t);

使用经过训练的回归系综预测排量为200立方英寸、功率为150马力、重量为3000磅的四缸汽车的燃油经济性。

predMPG=预测(Mdl1[42001503000])
predMPG = 22.8462

汽车的平均燃油经济性与这些规格的平均燃料经济性为21.78 mpg。

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

公式='MPG ~气缸+马力+重量';Mdl2 = fitensemble(资源描述公式,“LSBoost”100年,t);

比较两者的再取代mseMdl1Mdl2

mse1 = resubLoss (Mdl1)
mse1 = 6.4721
mse2 = resubLoss (Mdl2)
MSE2 = 7.8599.

对所有预测器进行训练的集合的样本内MSE较低。

估计经过训练的、增强的决策树分类集成的泛化误差。

加载电离层数据集。

负载电离层

使用AdaBoostM1、100个学习周期和随机选择的一半数据训练决策树集成。软件使用剩下的一半验证算法。

rng (2);%的再现性ClassTreeEns = fitensemble (X, Y,“AdaBoostM1”, 100,“树”...“坚持”,0.5);

ClassTreeEns是一个培训ClassificationEnsemble集成分类器。

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

genError = kfoldLoss (ClassTreeEns,“模式”“累积”);

genError一个100乘1的向量,元素在哪里k包含第一个后的泛化错误k学习周期。

绘制泛化误差除以学习周期数的曲线。

情节(genError);包含('学习周期数'); 伊拉贝尔(泛化误差的);

图中包含一个轴对象。axes对象包含类型为line的对象。

当25个弱学习者组成集成分类器时,累计泛化误差降低到7%左右。

您可以控制决策树集合中树的深度。在包含决策树二叉学习器的ECOC模型中,还可以使用MaxNumSplits小叶大小MinParentSize名称-值对参数。

  • 当套用决策树时,Fitysemble.默认情况下,生成深度决策树。您可以种植较浅的树,以减少模型复杂性或计算时间。

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

加载Carsmall.数据集。指定的变量加速位移马力重量为预测因子,英里/加仑作为响应。

负载Carsmall.X =[加速度位移马力重量];Y = MPG;

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

  • 1MaxNumSplits.这个选择变得困难重重。

  • 5小叶大小

  • 10MinParentSize

要搜索最佳分割数,请执行以下操作:

  1. 训练一组合奏。以指数方式增加后续集合的最大拆分数,从树桩到最多n- 1分,其中n为训练样本量。同时,将每个集成的学习率从1降低到0.1。

  2. 交叉验证集成。

  3. 估计每个集合的交叉验证均方误差(MSE)。

  4. 比较交叉验证的MSEs。最低的集合性能最好,并表明数据集的最优最大分裂数、树的数量和学习率。

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

MdlDeep=Firtree(X,Y,“克罗斯瓦尔”“上”“MergeLeaves”“关闭”...'迷人', 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:元素个数(maxNumSplits);t = templatetree(“MaxNumSplits”,maxNumSplits(j),“代孕”“上”);Mdl {j, k} = fitensemble (X, Y,“LSBoost”numTrees t...“类型”“回归”“KFold”5,“LearnRate”、lr (k));结束结束

计算每个集成的交叉验证的MSE。

kflAll = @ (x) kfoldLoss (x,“模式”'累积');errorCell = cellfun (Mdl kflAll,“统一”、假);error = replaceall (cell2mat(errorCell),[numTrees nummel (maxnumsplents) nummel (lr)]); / /重新命名errorDeep = kfoldLoss (MdlDeep);errorStump = kfoldLoss (MdlStump);

绘制交叉验证的MSE在少数集合、深树和树桩的集合中的树数增加时的行为。在同一个图中绘制关于学习率的曲线,并针对不同的树复杂性绘制单独的图。选择树复杂性级别的子集。

mnsPlot = [1 round(nummel (maxnumsplents)/2) nummel (maxnumsplents)];图;k=1:3;子批次(2,2,k);绘图(挤压(错误(:,mnsPlot(k),)),“线宽”2);轴;持有在…上;甘氨胆酸h =;情节(h。XLim,[errorDeep errorDeep],“。b”“线宽”,2); 绘图(h.XLim,[errorStump errorStump],'-.r'“线宽”2);情节(h.XLim min (min(错误(:,mnsPlot (k):)))。* [1],“--k”);h.YLim = [10 50];包含树木的数量;ylabel“旨在MSE”;标题(sprintf (“MaxNumSplits = % 0.3 g”maxNumSplits (mnsPlot (k))));持有结束;hL =传奇([cellstr num2str (lr ','学习率= %0.2f'));...“深树”“树桩”“最小MSE。”]);hL.Position (1) = 0.6;

图包含3个轴对象。轴对象1具有标题maxnumsplits = 1包含7个类型的类型线。轴对象2具有标题MaxNumSplits = 8包含7个类型的7个对象。轴对象3具有标题MaxnumSplits = 64包含7个类型的类型。这些对象代表学习率= 0.10,学习率= 0.25,学习率= 0.50,学习率= 1.00,深树,树桩,分钟。MSE。

每条曲线包含在集合中的最佳树木上发生的最小交叉验证的MSE。

确定产生总体最小MSE的最大分割数、树的数量和学习率。

[minErr, minErrIdxLin] = min(错误(:));[idxNumTrees, idxMNS idxLR] = ind2sub(大小(错误),minErrIdxLin);流(“\ nMin。MSE = % 0.5 f ',Minerr)
最小MSE = 18.42979
流(“\ nOptimal参数值:\ nNum。树= % d ', idxNumTrees);
最优参数值:Num. Trees = 1
流('\ nmaxnumpartitions = %d\nLearning Rate = %0.2f\n'...maxNumSplits (idxMNS), lr (idxLR))
学习速率= 1.00

对于不同的方法来优化这个合奏,请参阅优化一个提升的回归集合

输入参数

全部崩溃

用于训练模型的样本数据,指定为表。每一行的资源描述对应一个观察值,每一列对应一个预测变量。资源描述可以为响应变量包含一个额外的列。除了字符向量的单元格数组之外,不允许使用多列变量和单元格数组。

  • 如果资源描述包含响应变量,您希望将所有剩余的变量用作预测器,然后使用响应变量指定使用ResponseVarName

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

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

请注意

保存内存和执行时间,供应XY而不是资源描述

数据类型:桌子

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

您必须指定ResponseVarName作为字符向量或字符串标量。例如,如果资源描述。Y是响应变量,然后指定ResponseVarName作为“是的”.除此以外,Fitysemble.处理的所有列资源描述作为预测变量。

响应变量必须是一个类别、字符或字符串数组、逻辑或数字向量,或字符向量的单元格数组。如果响应变量是一个字符数组,那么每个元素必须对应数组的一行。

要进行分类,可以使用一会名称-值对的论点。除此以外,Fitysemble.确定类的顺序,并将其存储在mdl.classnames.

数据类型:字符|字符串

解释模型的响应变量和预测变量的子集,指定为字符向量或字符串标量的形式“Y ~ x1 + x2 + x3”.在这种形式,Y表示响应变量,和x1x2x3表示预测变量。

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

公式中的变量名必须是其中的两个变量名资源描述Tbl.Properties.VariableNames)并且是有效的MATLAB®标识符。您可以验证变量名资源描述通过使用伊斯瓦名称函数。如果变量名无效,则可以使用matlab.lang.makeValidName函数。

数据类型:字符|字符串

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

每行对应一个观测值,每列对应一个预测变量。

的长度Y以及X必须是相等的。

按预测器在中出现的顺序指定它们的名称X,可以使用PredictorNames名称-值对的论点。

数据类型:仅有一个的|

响应数据,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。中的每个条目Y对观察的响应或标签是否在相应的行中X资源描述.的长度Y以及X资源描述必须是相等的。如果响应变量是一个字符数组,那么每个元素必须对应数组的一行。

  • 的分类,Y可以是任何支持的数据类型。金宝app您可以使用该类指定类的顺序一会名称-值对的论点。除此以外,Fitysemble.确定类的顺序,并将其存储在mdl.classnames.

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

数据类型:分类|字符|字符串|逻辑|仅有一个的||细胞

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

  • 对于两类分类:

    • “AdaBoostM1”

    • “LogitBoost”

    • '温船'

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

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

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

    • “RUSBoost”

    • “子”

    • “包”

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

    • “AdaBoostM2”

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

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

    • “RUSBoost”

    • “子”

    • “包”

  • 对于回归:

    • “LSBoost”

    • “包”

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

集成聚合算法及示例请参见整体算法选择适用的集合聚合方法

集成学习周期数,指定为正整数或“AllPredictorCombinations”

  • 如果你指定一个正整数,那么,在每个学习周期,软件为每个模板对象训练一个弱学习者学习者.因此,软件训练NLearn *元素个数(学习者)学习者。

  • 如果您指定“AllPredictorCombinations”,然后设置方法“子”并仅指定一个学习者学习者.有了这些设置,软件就可以训练学习者掌握所有可能的预测因子组合npredtosample.在一个时间。因此,软件训练nchoosek(NPredToSample大小(X, 2))学习者。

该软件使用所有受过训练的学习者组成集合并将他们存储在其中Mdl.训练有素

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

数据类型:仅有一个的||字符|字符串

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

弱的学习者 Weak-Learner名字 模板对象创建函数 方法设置
判别分析 “判别” templateDiscriminant 推荐给“子”
k最近的邻居 “资讯” 模板 “子”只有
决策树 “树” templateTree 所有方法,除了“子”

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

例子:对于由两种类型的分类树组成的集合,提供{t1 t2},在那里t1t2是分类树模板。

名称-值参数

指定可选的逗号分隔的对名称,价值参数。名称是参数名和价值是对应的值。名称必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:Name1, Value1,…,的家

例子:“CrossVal”,“上”、“LearnRate”,0.05指定实现10倍交叉验证和使用0.05作为学习率。
一般系综选择

全部崩溃

分类预测器列表,指定为该表中的值之一。

价值 描述
正整数向量

向量中的每个条目是指示相应的预测器是分类的索引值。索引值在1之间p,在那里p是用于训练模型的预测数。

如果Fitysemble.使用输入变量的子集作为预测器,然后函数仅使用该子集对预测器进行索引。的CategoricalPredictors值不计算响应变量、观察权重变量或函数未使用的任何其他变量。

逻辑向量

一个符合事实的进入意味着相应的预测器是分类的。矢量的长度是p

字符矩阵 矩阵的每一行都是预测变量的名称。这些名称必须与PredictorNames.使用额外的空白填充名称,因此字符矩阵的每行具有相同的长度。
字符串数组或字符向量的单元数组 数组中的每个元素都是一个预测变量的名称。名称必须与里面的条目相匹配PredictorNames
“所有” 所有的预测都是绝对的。

规范的“CategoricalPredictors”是合适的,如果:

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

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

每个学习者以与与学习者对应的拟合功能相同的方式识别和处理分类预测器。看“CategoricalPredictors”属于fitcknnk-最近的学习者和“CategoricalPredictors”属于fitctree树的学习者。

例子:“分类预测因子”,“全部”

数据类型:仅有一个的||逻辑|字符|字符串|细胞

输出频率,指定为逗号分隔对组成“NPrint”一个正整数或“关闭”

来追踪号码弱的学习者折叠那个Fitysemble.到目前为止,请指定一个正整数。也就是说,如果指定正整数

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

  • 和交叉验证选项,然后Fitysemble.每次完成培训时,都会向命令行显示一条消息折叠。

如果您指定“关闭”,然后Fitysemble.在完成培训弱学习者时,不会显示一条消息。

提示

要快速训练某些增强的决策树,请设置NPrint设置为默认值“关闭”.这个提示在分类时保持方法“AdaBoostM1”“AdaBoostM2”'温船'“LogitBoost”,或当回归方法“LSBoost”

例子:“NPrint”,5

数据类型:仅有一个的||字符|字符串

预测器变量名称,指定为唯一名称的字符串数组或唯一字符向量的单元格数组。的功能PredictorNames这取决于你提供培训数据的方式。

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

    • 名字的顺序PredictorNames必须对应于的列顺序X.也就是说,PredictorNames {1}X (: 1)PredictorNames {2}X (:, 2),等等。同时,大小(X, 2)numel(预测名称)必须是相等的。

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

  • 如果你提供资源描述,则可以使用PredictorNames选择在训练中使用的预测变量。即,Fitysemble.仅使用预测变量PredictorNames以及训练过程中的反应变量。

    • PredictorNames必须是Tbl.Properties.VariableNames并且不能包含响应变量的名称。

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

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

例子:“PredictorNames”(“SepalLength”、“SepalWidth”,“PetalLength”,“PetalWidth”)

数据类型:字符串|细胞

响应变量名,指定为字符向量或字符串标量。

  • 如果你提供Y,则可以使用ractoreName.为响应变量指定名称。

  • 如果你提供ResponseVarName公式,则不能使用ractoreName.

例子:“racitalebame”,“响应”

数据类型:字符|字符串

监督学习类型,指定为逗号分隔对,由“类型”“分类”“回归”

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

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

例子:“类型”,“分类”

交叉验证选择

全部崩溃

交叉验证标志,指定为逗号分隔对,由“Crossval”“上”“关闭”

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

要覆盖此交叉验证设置,请使用以下名称-值对参数之一:CVPartition坚持KFoldLeaveout。若要创建交叉验证模型,一次只能使用一个交叉验证名称-值对参数。

或者,稍后通过传递进行交叉验证Mdlcrossvalcrossval

例子:“Crossval”,“上”

交叉验证分区,指定为CVD分区分区对象由CVD分区.分区对象指定交叉验证的类型以及训练集和验证集的索引。

要创建交叉验证模型,只能指定以下四个名称值参数之一:CVPartition坚持KFoldLeaveout

例子:假设您创建了一个随机分区,通过使用本量利= cvpartition(500年,“KFold”,5).然后,您可以使用“CVPartition”,本量利

用于抵抗验证的数据的一部分,指定为范围(0,1)中的标量值。如果您指定'扑腾',p,则软件完成以下步骤:

  1. 随机选择和保留p * 100%将这些数据作为验证数据,并使用其余数据对模型进行训练。

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

要创建交叉验证模型,只能指定以下四个名称值参数之一:CVPartition坚持KFoldLeaveout

例子:“坚持”,0.1

数据类型:|仅有一个的

在交叉验证模型中使用的折叠数,指定为大于1的正整数。如果您指定KFold, k,则软件完成以下步骤:

  1. 将数据随机划分为k集。

  2. 对于每个集合,保留集合作为验证数据,并使用其他集合训练模型k- 1集。

  3. 存储k紧凑,训练模型在k-by-1细胞载体训练有素的交叉验证模型的财产。

要创建交叉验证模型,只能指定以下四个名称值参数之一:CVPartition坚持KFoldLeaveout

例子:'kfold',5

数据类型:仅有一个的|

省略一交叉验证标志,指定为“上”“关闭”.如果您指定“Leaveout”,“上”,然后针对每个n观察(n不包括遗漏的观测数据,观测数据的数量是否在NumObservations属性),软件完成以下步骤:

  1. 保留一个观测值作为验证数据,并使用另一个对模型进行训练n- 1的观察。

  2. 存储n紧凑,训练模型在一个n-by-1细胞载体训练有素的交叉验证模型的财产。

要创建交叉验证模型,只能指定以下四个名称值参数之一:CVPartition坚持KFoldLeaveout

例子:“Leaveout”,“上”

其他分类或回归选项

全部崩溃

用于训练的类名,指定为分类数组、字符数组或字符串数组;逻辑或数字向量;或者字符向量的单元格数组。一会中的响应变量必须具有相同的数据类型资源描述Y

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

使用一会到:

  • 指定培训期间课程的顺序。

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

  • 选择用于培训的类的子集。例如,假设集合中所有不同的类名Y(“a”、“b”、“c”).使用来自类的观察来训练模型“一个”“c”只是,指定“类名”,(“a”、“c”)

默认值一会中响应变量中所有不同类名的集合资源描述Y

例子:“类名”,(“b”,“g”)

数据类型:分类|字符|字符串|逻辑|仅有一个的||细胞

误分类代价,指定为逗号分隔对组成“成本”方阵或方阵结构。如果你指定:

  • 方形矩阵成本,然后成本(i,j)将一个点分类的成本是多少j如果它真正的阶级是. 也就是说,行对应于真实类,列对应于预测类。为相应的行和列指定类顺序的步骤成本,亦指定一会名称-值对的论点。

  • 结构年代,则必须有两个字段:

    • 美国类名,它将类名包含为与类相同数据类型的变量Y

    • S.Classificycosts.,其中包含行和列按顺序排列的代价矩阵美国类名

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

请注意

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

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

数据类型:|仅有一个的|结构体

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

价值 描述
“经验” 类先验概率是类的相对频率Y
“统一” 所有类的先验概率都等于1/K,在那里K为类数。
数字矢量 每个元素都是一个类先验概率。将元素按顺序排列mdl.classnames.或使用一会名称-值对的论点。软件将元素标准化,使它们相加为1
结构数组

一个结构年代两个字段:

  • 美国类名将类名包含为与Y

  • S.ClassProbs包含相应的先验概率向量。软件将元素标准化,使它们相加为1

Fitysemble.标准化中的先验概率先前的求和为1。

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

数据类型:字符|字符串||仅有一个的|结构体

观察权值,指定为逗号分隔的对,由“重量”和一个正数的数字向量或变量名资源描述.该软件对每一行的观察结果进行权衡X资源描述具有相应的价值权重.的大小权重必须等于X资源描述

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

该软件可实现权重总结相应类中的现有概率的值。

默认情况下,权重(n, 1),在那里n观察的次数在吗X资源描述

数据类型:|仅有一个的|字符|字符串

增压方法和装袋的抽样选择

全部崩溃

为每个弱学习者重新采样的训练集的分数,在(0,1)中指定为正标量。要使用“FResample”,设置重新取样“上”

例子:“FResample”,0.75

数据类型:仅有一个的|

指示替换采样的标志,指定为逗号分隔对,由'代替'“关闭”“上”

  • “上”,软件对训练观察值进行采样,并进行替换。

  • “关闭”,该软件对训练观察结果进行抽样,不进行替换。如果你设置了重新取样“上”,然后软件对假设均权值的训练观察值进行抽样。如果你也指定了一种加速方法,那么软件就会通过重新加权观察结果来加速。

除非你设定方法“包”或一组重新取样“上”取代没有效果。

例子:“替换”、“关闭”

指示重新取样的标志,指定为由逗号分隔的对“重新采样”“关闭”“上”

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

    • 重新取样,“指定使用更新的权值作为多项抽样概率对训练观察进行抽样。

    • “重新取样”,“关闭”(默认)指定在每次学习迭代时重新加权观察值。

  • 如果方法“包”,然后“重新采样”必须是“上”. 软件对训练观察值的一小部分进行重新采样(参见Fresample.)带或不带更换件(参见取代).

如果指定使用重新采用重新取样,则对整个数据集进行重新采样是一种良好的实践。即使用默认值1 forFresample.

AdaBoostM1, AdaBoostM2, LogitBoost, GentleBoost, LSBoost方法选项

全部崩溃

收缩学习率,指定为逗号分隔对,由“LearnRate”和间隔(0,1]中的数字标量。

要使用收缩率训练合奏,请设置LearnRate值小于1例如,0.1这是一个流行的选择。使用收缩率训练集成需要更多的学习迭代,但通常可以获得更好的精度。

例子:“LearnRate”,0.1

数据类型:仅有一个的|

RUSBoost方法选项

全部崩溃

收缩学习率,指定为逗号分隔对,由“LearnRate”和间隔(0,1]中的数字标量。

要使用收缩率训练合奏,请设置LearnRate值小于1例如,0.1这是一个流行的选择。使用收缩率训练集成需要更多的学习迭代,但通常可以获得更好的精度。

例子:“LearnRate”,0.1

数据类型:仅有一个的|

相对于最低代表类的抽样比例,指定为逗号分隔对,包括“RatioToSmallest”以及长度等于训练数据中不同类的数量的数值标量或数值向量。

假设有K类在训练数据和最低表示的类对训练数据的观察。

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

  • 如果指定数字向量s1s2、……sK,然后Fitysemble.样品观察从类= 1,…,K.的元素RatioToSmallest与使用中指定的类名的顺序对应一会(见提示).

默认值为(K, 1),它指定抽样每个班级的观察。

例子:‘RatioToSmallest’,(2,1)

数据类型:仅有一个的|

LPBoost和TotalBoost方法选项

全部崩溃

控制收敛速度的边距精度,指定为逗号分隔对,由“边际精度”以及区间[0,1]内的数字标量。MarginPrecision影响收敛所需的增强迭代次数。

提示

要使用许多学习者培训合奏,请指定一个小值MarginPrecision.对于使用少数学习者的培训,请指定较大的值。

例子:“MarginPrecision”,0.5

数据类型:仅有一个的|

RobustBoost方法选择

全部崩溃

目标分类错误,指定为逗号分隔对组成“RobustErrorGoal”和非负数值标量。可能值的上限取决于罗布斯特马金斯马酒店RobustMaxMargin.但是,上限不能超过1

提示

对于特定的培训集,通常存在最佳范围RobustErrorGoal. 如果将其设置得太低或太高,则软件可能会生成分类精度较差的模型。尝试交叉验证以搜索适当的值。

例子:“RobustErrorGoal”,0.05

数据类型:仅有一个的|

分类边距分布在训练数据上,指定为逗号分隔对,由'robustmarginsigma'和一个正数标量。在指定之前罗布斯特马金斯马酒店,查阅相关文献稳健性增强例如,[19]

例子:“RobustMarginSigma”,0.5

数据类型:仅有一个的|

训练数据中的最大分类裕度,指定为逗号分隔对,由'robustmaxmargin'和一个非负的数值标量。该软件将训练数据中具有分类边距的观察数最小化RobustMaxMargin

例子:“RobustMaxMargin”,1

数据类型:仅有一个的|

随机子空间方法选项

全部崩溃

为每个随机子空间学习者采样的预测器数量,指定为逗号分隔对组成“NPredToSample”和间隔1的正整数,......,p,在那里p为预测变量的个数(大小(X, 2)大小(台,2)).

数据类型:仅有一个的|

输出参数

全部崩溃

训练的集成模型,作为该表中的模型对象之一返回。

模型对象 类型设置 指定任何交叉验证选项? 方法设置 重新取样设置
ClassificationBaggedEnsemble “分类” “包” “上”
ClassificationEnsemble “分类” 任何用于分类的集成聚合方法 “关闭”
分类分区集合 “分类” 是的 任何分类集成聚合方法 “关闭”“上”
回归释迦缩短 “回归” “包” “上”
RegressionEnsemble “回归” “LSBoost” “关闭”
RegressionPartitionedEnsemble “回归” 是的 “LSBoost”“包” “关闭”“上”

控制交叉验证的名称-值对参数是CrossVal坚持KFoldLeaveoutCVPartition

参考属性Mdl,使用点符号。例如,要访问或显示尚未交叉验证的集成的弱学习器模型对象的细胞向量,请输入Mdl.训练有素在命令行。

提示

  • NLearn从几十个到几千个不等。通常,一个具有良好预测能力的集成需要几百到几千个较弱的学习者。然而,您不需要一次训练那么多周期的合奏。你可以从培养几十个学习者开始,检查合奏表演,然后,如果有必要的话,用它来训练更多的弱学习者的简历对于分类问题,或者的简历对于回归问题。

  • 合奏表现取决于合奏设置和弱学习者的设置。也就是说,如果您使用默认参数指定弱学习器,那么集成的性能可能会很差。因此,与集成设置一样,使用模板调整弱学习器的参数,并选择最小化泛化误差的值,是一种良好的实践。

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

  • 在分类问题中(即,类型“分类”):

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

      • 误分类成本(成本)是高度不平衡的,因此,对于包内样本,软件抽样从班级的独特观察,有很大的惩罚。

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

      对于较小的样本量,这些组合可能会导致具有较大惩罚或先验概率的类的较低的袋外观测相对频率。因此,估计出的行李外误差变化很大,很难解释。为了避免较大的估计出袋误差方差,特别是对于小样本量,使用成本或者是更少偏差的先验概率向量先前的

    • 由于某些输入和输出参数的顺序对应于训练数据中的不同类,因此使用一会名称-值对的论点。

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

        Ycat =分类(Y);一会=类别(Ycat)
        分类分配<未定义>对非机密的观察和类别不包括<未定义>从它的输出。因此,如果将此代码用于包含标签的单元格数组或类似的代码用于类别数组,则不必删除缺少标签的观察结果以获得不同类的列表。

      • 要将从最低标签的标签指定为大多数表示的类顺序,然后快速确定类顺序(如上文出口),但在将列表传递给的之前按频率排列列表中的类一会.在前面的例子中,这段代码指定了类从最低到最多的顺序classNamesLH

        Ycat=分类(Y);类别名称=类别(Ycat);freq=countcats(Ycat);[~,idx]=排序(频率);classNamesLH=类名称(idx);

算法

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

  • 如果您指定方法作为一个提升算法学习者成为决策树,然后软件就会成长树桩默认情况下。一个决策桩是一个根节点连接到两个终端,叶节点。属性可以调整树的深度MaxNumSplits小叶大小MinParentSize使用templateTree

  • Fitysemble.对误分类代价大的类进行过抽样,对误分类代价小的类进行过抽样,产生袋内样本。因此,out- bag样本来自误分类代价大的类别的观察较少,而来自误分类代价小的类别的观察较多。如果您使用一个小数据集和一个高度倾斜的代价矩阵来训练一个分类集成,那么每个类的包外观察的数量可能会很低。因此,估计的包外误差可能有很大的方差,可能很难解释。对于具有较大先验概率的类,也会出现同样的现象。

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

    • 如果你设置了“比率最小”,2,然后年代2*1020.因此,Fitysemble.使用课堂上的20个观察结果对每个学员进行培训一个以及20个课堂观察B.如果你设置了‘RatioToSmallest’,(2 - 2),则得到相同的结果。

    • 如果你设置了‘RatioToSmallest’,(2,1),然后s12*1020s21 * 10.10.因此,Fitysemble.使用课堂上的20个观察结果对每个学员进行培训一个和10次课堂观察B

  • 对于决策树的集合,以及双核及以上系统,Fitysemble.使用英特尔并行训练®线程构建块(TBB)。关于Intel TBB的详细介绍请参见https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onetbb.html

参考文献

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

[2] 布莱曼,L.“随机森林。”机器学习. 第45卷,第5-32页,2001年。

[3] 一个更稳健的推进算法arXiv:0905.2138v1, 2009.

[4] 在线学习的决策理论推广及其在促进学习中的应用计算机与系统科学博士,第55卷,119-139页,1997。

[5]弗里德曼,J。“贪婪函数近似:梯度升压机。”统计数据,第29卷,第5期,第1189-1232页,2001。

[6]弗里德曼,J.,T. Hastie和R. Tibshirani。“添加性逻辑回归:提升的统计视图。”统计数据,第28卷,第2期,第337-407页,2000。

[7] 黑斯蒂、T、R.蒂布什拉尼和J.弗里德曼。统计学习的要素第2008年纽约Springer,2008年Springer。

[8] 构建决策森林的随机子空间方法关于模式分析和机器智能的IEEE交易, 1998年,第20卷第8期,第832-844页。

[9] 夏皮雷,R.E.,Y.Freund,P.Bartlett和W.S.Lee。“提高差距:投票方法有效性的新解释。”统计数据,第26卷,第5期,第1651-1686页,1998。

[10] 塞弗特,C.,T.霍什戈夫塔尔,J.赫尔斯和A.纳波利塔诺。“RUSBoost:在训练数据倾斜时提高分类性能。”第十九届国际模式识别会议,第1-42008页。

[11]温穆特,廖建军,陈志强。“完全正确的助推算法,使利润最大化。”Proc。23 int'l。Conf。在机器学习,ACM,纽约,PP。1001-1008,2006。

在R2011A介绍