主要内容

fitrensemble

为回归拟合学习者集合

描述

例子

Mdl= fitrensemble (资源描述ResponseVarName返回经过训练的回归集成模型对象(Mdl),其中包含使用LSBoost提升100个回归树的结果以及表中的预测器和响应数据资源描述ResponseVarName响应变量的名称是否在资源描述

例子

Mdl= fitrensemble (资源描述公式适用于公式将模型与表中的预测器和响应数据拟合资源描述公式是否有响应的解释模型和预测变量的子集资源描述适合使用Mdl.例如,“Y ~ X1 + X2 + X3”适合响应变量资源描述。Y作为预测变量的函数资源描述。X1资源描述。X2,资源描述。X3

例子

Mdl= fitrensemble (资源描述Y处理表中的所有变量资源描述作为预测变量。Y是不在的响应向量吗资源描述

例子

Mdl= fitrensemble (XY利用矩阵中的预测数据X向量中的响应数据Y

例子

Mdl= fitrensemble (___名称,值使用一个或多个指定的其他选项名称,值对参数和前面语法中的任何输入参数。例如,您可以指定学习周期的数量、集成聚合方法或实现10次交叉验证。

例子

全部折叠

创建一个回归集合,在给定汽缸数量、汽缸排量、马力和重量的情况下预测汽车的燃油经济性。然后,用较少的预测因子训练另一个集合。比较集合的样本内预测精度。

加载carsmall数据集。将训练中使用的变量存储在表中。

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

训练一个回归集合。

Mdl1 = fitrensemble(资源描述,“英里”);

Mdl1是一个RegressionEnsemble模型。的一些显著特征Mdl1是:

  • 集成聚合算法为“LSBoost”

  • 由于集成聚合方法是一种增强算法,允许最多10次分割的回归树组成集成。

  • 一百棵树组成了这个乐团。

因为英里/加仑是MATLAB®工作区中的一个变量,输入

Mdl1 = fitrensemble(资源描述、MPG);

使用训练过的回归集合来预测一辆排量为200立方英寸、马力为150马力、重量为3000磅的四缸汽车的燃油经济性。

pMPG = predict(Mdl1,[4 200 150 3000])
pMPG = 25.6467

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

公式=MPG ~汽缸+马力+重量;Mdl2 = fitrensemble(资源描述、公式);

比较两者之间的再取代MSEsMdl1而且Mdl2

mse1 = resubLoss (Mdl1)
mse1 = 0.3096
mse2 = resubLoss (Mdl2)
mse2 = 0.5861

在所有预测因子上训练的集合的样本内均方误差较低。

使用训练增强回归树的集合fitrensemble.可以减少培训时间“NumBins”名称-值对参数到bin数值预测器。训练之后,您可以使用BinEdges训练模型的性质和离散化函数。

生成一个示例数据集。

rng (“默认”%的再现性N = 1 e6;X1 =兰迪([1,5],[N, 1]);X2 =兰迪([5 10],[N, 1]);X3 =兰迪([0 5][N, 1]);X4 =兰迪([1,10],[N, 1]);X = [x1 x2 x3 x4];y = X1 + X2 + X3 + X4 + normrnd(0,1,[N,1]);

使用最小二乘增强(LSBoost,为默认值)。为比较目的对函数进行计时。

tic Mdl1 = fitrensemble(X,y);toc
运行时间为78.662954秒。

加速训练使用“NumBins”名称-值对的论点。如果指定“NumBins”值作为正整数标量,那么软件将每个数字预测器分类到指定数量的等概率分类中,然后在分类索引上生长树,而不是原始数据。该软件没有分类预测器。

tic Mdl2 = fitrensemble(X,y,“NumBins”, 50);toc
运行时间为43.353208秒。

当使用分组数据而不是原始数据时,该过程大约快两倍。注意,运行时间可能因操作系统而异。

用复代比较回归误差。

rsLoss = resubLoss (Mdl1)
rsLoss = 1.0134
rsLoss2 = resubLoss (Mdl2)
rsLoss2 = 1.0133

在本例中,对预测器值进行分组可以减少训练时间,而不会显著损失准确性。一般来说,当您拥有像本例中这样的大型数据集时,使用分箱选项可以加快训练速度,但可能会降低准确性。如果您想进一步减少训练时间,请指定更少的容器数量。

方法重新生成归档的预测器数据BinEdges训练模型的性质和离散化函数。

X = Mdl2.X;%的预测数据Xbinned = 0(大小(X));边缘= Mdl2.BinEdges;查找已装箱预测器的索引。idxNumeric =找到(~ cellfun (@isempty边缘));如果iscolumn(idxNumeric) idxNumeric = idxNumeric';结束j = idxNumeric x = x (:,j);如果x是表,则将x转换为数组。如果稳定(x) x = table2array(x);结束使用离散化函数将x分组到箱子中。xbinned =离散化(x,[无穷;边缘{};正]);Xbinned (:, j) = Xbinned;结束

Xbinned包含数值预测器的bin索引,范围从1到bin的数量。Xbinned值是0分类预测。如果X包含S,那么对应的Xbinned值是年代。

估计增强回归树集合的泛化误差。

加载carsmall数据集。选择气缸的数量,容积取代气缸,马力和重量作为燃料经济性的预测。

负载carsmallX =[汽缸排量马力重量];

使用10倍交叉验证对回归树集合进行交叉验证。使用决策树模板,指定每个树应该只分割一次。

rng (1);%的再现性t = templateTree (“MaxNumSplits”1);Mdl = fitrensemble (X,英里/加仑,“学习者”t“CrossVal”“上”);

Mdl是一个RegressionPartitionedEnsemble模型。

绘制累积的,10倍交叉验证,均方误差(MSE)。显示估计的集合泛化误差。

kflc = kfoldLoss (Mdl,“模式”“累积”);图;情节(kflc);ylabel (“旨在MSE 10倍”);包含(“学习周期”);

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

estGenError = kflc(结束)
estGenError = 26.2356

kfoldLoss默认情况下返回泛化错误。然而,绘制累积损失可以让您监控损失是如何随着弱学习者在集成中积累而变化的。

在累积了大约30个弱学习者后,整体的MSE达到23.5左右。

如果您对集合的泛化误差满意,那么,为了创建预测模型,使用除交叉验证之外的所有设置再次训练集合。然而,优化超参数是一种很好的实践,比如每棵树的最大决策分割次数和学习周期的数量。

此示例演示如何使用自动优化超参数fitrensemble.该示例使用carsmall数据。

加载数据。

负载carsmall

通过使用自动超参数优化,您可以找到最小化五倍交叉验证损失的超参数。

Mdl = fitrensemble (MPG(功率、重量),“OptimizeHyperparameters”“汽车”

在本例中,为了再现性,设置随机种子并使用“expected-improvement-plus”采集功能。此外,对于随机森林算法的再现性,指定“复制”名称-值对参数as真正的树的学习者。

rng (“默认”t = templateTree(“复制”,真正的);Mdl = fitrensemble (MPG(功率、重量),“OptimizeHyperparameters”“汽车”“学习者”t...“HyperparameterOptimizationOptions”结构(“AcquisitionFunctionName”“expected-improvement-plus”))
|===================================================================================================================================| | Iter | Eval |目的:| |目的BestSoFar | BestSoFar | |方法NumLearningC - | LearnRate | MinLeafSize | | | |结果日志(1 +损失)运行时| |(观察)| (estim) | |永昌龙  | | | |===================================================================================================================================| | 最好1 | | 2.9726 | 19.153 | 2.9726 | 2.9726 |袋| 413 | - | 1 | | 2 |接受| 6.2619 | 1.4381 | 2.9726 | 3.6133 | LSBoost 57 | | 0.0016067 | 6 | | 3 |接受| 2.9975 | 0.78919 | 2.9726 | 2.9852 |32袋| | - | 2 | | 4 |接受| 4.1897 | 1.0604 | 2.9726 | 2.972 |包55 40 | | - - - | | | 5 |接受| 6.3321 | 1.5364 | 2.9726 | 2.9715 | LSBoost 55 | | 0.001005 | 2 | | 6 |的| 2.9714 | 0.8955 | 2.9714 | 2.9715 |袋| 39 | - | 1 | | 7最好| | 2.9615 | 1.1928 | 2.9615 | 2.9681 | 55袋| | - | 1 | | |接受8 | 2.9756 | 6.4121 | 2.9615 | 2.97 |袋| 333 | - | 1 | | | 9日接受| 4.1881 | 0.8442 | 2.9615 | 2.9701 | LSBoost 28 50 | 0.50579 | | | | | 10接受| 3.6997 | 1.8852 | 2.9615 |2.9701 | LSBoost | 79 | 0.99445 | 1 | | | 11日接受| 3.5469 | 9.2255 | 2.9615 | 2.9701 | LSBoost | 436 | 0.12687 | 1 | | | 12日接受| 4.1882 | 4.0853 | 2.9615 | 2.9701 | LSBoost | 104 | 0.051881 | 50 | | | 13日接受| 3.3774 | 9.5775 | 2.9615 | 2.9702 | LSBoost | 437 | 0.013501 | 1 | | | 14日接受| 3.4396 | 5.9035 | 2.9615 | 2.9702 | LSBoost | 281 | 0.034144 | 1 | | 15 |接受| 3.4666 | 1.1124 | 2.9615 | 2.9702 | LSBoost | 21 | 0.35695 | 1 | | | 16日接受| 4.43 | 4.958 | 2.9615 | 2.9701 |50 LSBoost | 193 | 0.0088369 | | | | 17日接受| 6.4004 | 0.6677 | 2.9615 | 2.97 | LSBoost | 23 | 0.0010034 | 49 | | | 18日接受| 3.4832 | 10.044 | 2.9615 | 2.9701 | LSBoost | 480 | 0.99944 | 14 | |最好19 | | 2.9192 | 0.5976 | 2.9192 | 2.9197 | LSBoost | 17 | 0.17597 | 10 | | 20 |接受| 3.5303 | 7.4081 | 2.9192 | 2.9198 | LSBoost | 344 | 0.27755 | 5  | |===================================================================================================================================| | Iter|Eval | Objective: | Objective | BestSoFar | BestSoFar | Method | NumLearningC-| LearnRate | MinLeafSize | | | result | log(1+loss) | runtime | (observed) | (estim.) | | ycles | | | |===================================================================================================================================| | 21 | Accept | 4.3089 | 0.48435 | 2.9192 | 2.9198 | LSBoost | 13 | 0.14841 | 49 | | 22 | Accept | 3.0354 | 3.3554 | 2.9192 | 2.9199 | LSBoost | 148 | 0.06117 | 10 | | 23 | Best | 2.8658 | 0.40038 | 2.8658 | 2.866 | Bag | 10 | - | 6 | | 24 | Accept | 2.9506 | 0.33879 | 2.8658 | 2.8667 | Bag | 10 | - | 4 | | 25 | Accept | 2.8664 | 0.37114 | 2.8658 | 2.8658 | Bag | 10 | - | 9 | | 26 | Accept | 2.9071 | 0.93055 | 2.8658 | 2.8659 | LSBoost | 35 | 0.12356 | 13 | | 27 | Best | 2.819 | 10.398 | 2.819 | 2.827 | Bag | 494 | - | 7 | | 28 | Accept | 2.8327 | 9.2082 | 2.819 | 2.8308 | Bag | 492 | - | 7 | | 29 | Accept | 2.8205 | 9.247 | 2.819 | 2.8269 | Bag | 495 | - | 7 | | 30 | Accept | 2.8228 | 9.335 | 2.819 | 2.8258 | Bag | 492 | - | 7 |

图中包含一个axes对象。标题为Min objective vs. Number of function求值的axis对象包含两个类型为line的对象。这些对象表示最小观测目标,估计最小目标。

__________________________________________________________ 优化完成。最大目标:达到30。总功能评估:30总运行时间:152.9867秒总目标功能评估时间:132.8552最佳观测可行点:Method NumLearningCycles LearnRate MinLeafSize ______ _________________ _________ ___________ Bag 494 NaN 7观测目标函数值= 2.819估计目标函数值= 2.8258函数评估时间= 10.82最佳估计可行点(根据模型):方法NumLearningCycles LearnRate MinLeafSize ______ _________________ _________ ___________ Bag 495 NaN 7估计的目标函数值= 2.8258估计的函数评估时间= 9.9223
Mdl = RegressionBaggedEnsemble ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none' NumObservations: 94 HyperparameterOptimizationResults: [1x1 BayesianOptimization] numtrainationresults: 495 Method: 'Bag' LearnerNames: {'Tree'} reasonforterminate: '完成所要求的训练周期数后正常终止。'FitInfo: [] FitInfoDescription: 'None' Regularization: [] FResample: 1 Replace: 1 UseObsForLearner: [94x495 logical] Properties, Methods

优化研究了回归方法(而且LSBoost),在NumLearningCycles,在LearnRateLSBoost,和越过树的学习者MinLeafSize.输出是估计交叉验证损失最小的集合回归。

创建具有令人满意预测性能的增强回归树集合的一种方法是使用交叉验证调整决策树的复杂性级别。在寻找最优的复杂度水平时,调整学习率以最小化学习周期的数量。

此示例通过使用交叉验证选项手动查找最佳参数“KFold”名称-值对参数)和kfoldLoss函数。或者,您也可以使用“OptimizeHyperparameters”名称-值对参数自动优化超参数。看到优化回归合奏

加载carsmall数据集。选择气缸的数量,容积取代气缸,马力和重量作为燃料经济性的预测。

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

用于提升回归树的树深度控制器的默认值是:

  • 10MaxNumSplits

  • 5MinLeafSize

  • 10MinParentSize

搜索最优的树复杂度级别:

  1. 交叉验证一组集成。将后续集成从决策残桩(一次分裂)到最多的树复杂度水平指数级增加n- 1分裂。n是样本容量。另外,将每个集成的学习率变化在0.1到1之间。

  2. 估计每个集合的交叉验证均方误差。

  3. tree-complexity水平 j j 1 J ,通过将集合的累积、交叉验证的MSE与学习周期的数量绘图来比较。在同一幅图上分别绘制每种学习率的曲线。

  4. 选择MSE最小的曲线,记下相应的学习周期和学习率。

交叉验证深度回归树和树桩。因为数据包含缺失的值,所以使用代理分割。这些回归树作为基准。

rng (1)%的再现性MdlDeep = fitrtree(资源描述,“英里”“CrossVal”“上”“MergeLeaves”“关闭”...“MinParentSize”, 1“代孕”“上”);MdlStump = fitrtree(资源描述,“英里”“MaxNumSplits”, 1“CrossVal”“上”...“代孕”“上”);

使用5倍交叉验证对150个增强回归树的集合进行交叉验证。使用树模板:

  • 使用序列中的值改变最大分割数 2 0 2 1 2 是这样的, 2 并不比n- 1。

  • 打开代理拆分。

对于每个变量,使用集合{0.1,0.25,0.5,1}中的每个值调整学习率。

n =大小(1台);M = floor(log2(n - 1));learnRate = [0.1 0.25 0.5 1];numLR =元素个数(learnRate);maxNumSplits = 2。^ (0:m);numMNS =元素个数(maxNumSplits);numTrees = 150;Mdl =细胞(numMNS numLR);k = 1: numLRj = 1:numMNS t = templateTree(“MaxNumSplits”maxNumSplits (j),“代孕”“上”);Mdl {j, k} = fitrensemble(资源描述,“英里”“NumLearningCycles”numTrees,...“学习者”t“KFold”5,“LearnRate”, learnRate (k));结束结束

估计每个集合的累积、交叉验证的均方误差。

kflAll = @ (x) kfoldLoss (x,“模式”“累积”);errorCell = cellfun (Mdl kflAll,“统一”、假);error =重整(cell2mat(errorCell),[numTrees numel(maxnumslices) numel(learnRate)]);errorDeep = kfoldLoss (MdlDeep);errorStump = kfoldLoss (MdlStump);

绘制交叉验证的MSE如何随着集合中树的数量的增加而表现。在同一地块上绘制关于学习率的曲线,并为不同的树复杂度水平绘制单独的地块。选择要绘制的树复杂度级别的子集。

mnsPlot = [1 round(numel(maxnumfragments)/2) numel(maxnumfragments)];图;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(最低(错误(:,mnsPlot (k):)))。* [1],“——k”h.YLim = [10 50];包含(树木的数量) ylabel (“旨在MSE”)标题(sprintf (“MaxNumSplits = % 0.3 g”maxNumSplits (mnsPlot (k))))结束hL =传奇([cellstr num2str (learnRate ',“学习率= %0.2f”));...“深树”“树桩”“最小MSE。”]);hL.Position (1) = 0.6;

图中包含3个轴对象。标题为maxnumfragments = 1的Axes对象1包含7个line类型的对象。标题为maxnumfragments = 8的Axes对象2包含7个line类型的对象。标题为maxnumfragments = 64的Axes对象3包含7个line类型的对象。这些对象表示学习率= 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 = 16.77593
流(“\ nOptimal参数值:\ nNum。树= % d ', idxNumTrees);
最佳参数值:Num. Trees = 78
流('\ nmaxnumpartitions = %d\nLearning Rate = %0.2f\n'...maxNumSplits (idxMNS) learnRate (idxLR))
maxnumslices = 1学习率= 0.25

基于最优超参数和整个训练集创建一个预测集合。

tFinal = templateTree (“MaxNumSplits”maxNumSplits (idxMNS),“代孕”“上”);MdlFinal = fitrensemble(资源描述,“英里”“NumLearningCycles”idxNumTrees,...“学习者”tFinal,“LearnRate”learnRate (idxLR))
MdlFinal = RegressionEnsemble PredictorNames: {1x4 cell} ResponseName: 'MPG' CategoricalPredictors: [] ResponseTransform: 'none' NumObservations: 94 numtraining: 78 Method: 'LSBoost' LearnerNames: {'Tree'} reasonforterminate: '完成所请求的训练周期数后正常终止。'FitInfo: [78x1 double] FitInfoDescription: {2x1 cell}规范化:[]属性,方法

MdlFinal是一个RegressionEnsemble.要预测给定汽缸数量、汽缸排量、马力和重量的汽车的燃油经济性,您可以传递预测器数据和MdlFinal预测

使用交叉验证选项(“KFold”)和kfoldLoss函数,您可以使用“OptimizeHyperparameters”名称-值对的论点。当你指定“OptimizeHyperparameters”,软件利用贝叶斯优化算法自动找到最优参数。得到的最佳值“OptimizeHyperparameters”可以不同于那些使用手动搜索获得的。

t = templateTree (“代孕”“上”);mdl = fitrensemble(资源描述,“英里”“学习者”t...“OptimizeHyperparameters”,{“NumLearningCycles”“LearnRate”“MaxNumSplits”})
|====================================================================================================================| | Iter | Eval |目的:| |目的BestSoFar | BestSoFar | NumLearningC - | LearnRate | MaxNumSplits | | | |结果日志(1 +损失)运行时| |(观察)| (estim) |永昌龙  | | | |====================================================================================================================| | 最好1 | | 3.3955 | 0.78659 | 3.3955 | 3.3955 | 26 | 0.072054 | 3 | | 2 |接受| 6.0976 | 3.5152 | 3.3955 | 3.5549 | 170 | 70 | 0.0010295 | | 3 |最好| 3.2914 | 5.7072 | 3.2914 | 3.2917 | 273 | 0.61026 | 6 | | 4 | |6.1839 | 1.5446 | 3.2914 | 3.2915 | 80 | 0.0016871 | 1 | | 5 |的| 3.0273 | 0.39629 | 3.0273 | 3.0278 | 10 15 | 0.21599 | | | 6 |接受| 3.3234 | 0.49273 | 3.0273 | 3.1684 | 10 | 0.18084 | 4 | | 7最好| | 2.9751 | 0.33056 | 2.9751 | 3.1054 | 10 | 0.26528 | 2 | | |接受8 | 2.9829 | 0.37607 | 2.9751 | 2.9876 | 0.27312 | | 10 8 | | 9最好| | 2.8926 | 0.65738 | 2.8926 | 2.8916 | 10 | 0.33918 | 1 | | 10 |接受| 3.4117 | 0.3173 | 2.8926 | 2.8918 | 0.97894 | | 97 | | | | 11日接受35 | 3.1697 | 0.82513 | 2.8926 | 3.0546 | 0.34126 | 94 | | | 12日接受| 6.1029 | 0.52639 | 2.8926 | 3.0025 | 0.017094 | | 72 | | 13最好| | 2.8857 | 0.26296 | 2.8857 | 2.8895 | 10 | 0.33086 | 1 | | | 14日接受| 3.0897 | 0.26937 | 2.8857 | 2.8895 | 10 | 0.98558 | 1 | | |接受15 | 2.9155 | 0.25878 | 2.8857 | 2.8907 | 10 | 0.39786 | 1 | | | 16日接受| 2.9301 | 1.4465 | 2.8857 | 2.8906 | 63 | 0.13196 | 1 | | | 17日接受| 2.9423 | 0.41594 | 2.8857 | 2.8915 | 17 | 0.3125 | 1 | | | 18日接受|3.0641 | 2.2717 | 2.8857 | 2.8914 | 82 | 0.093631 | 98 | | 19 | Accept | 3.0768 | 1.5719 | 2.8857 | 2.8921 | 42 | 0.1616 | 98 | | 20 | Accept | 2.8923 | 0.44345 | 2.8857 | 2.8921 | 10 | 0.34025 | 1 | |====================================================================================================================| | Iter | Eval | Objective: | Objective | BestSoFar | BestSoFar | NumLearningC-| LearnRate | MaxNumSplits | | | result | log(1+loss) | runtime | (observed) | (estim.) | ycles | | | |====================================================================================================================| | 21 | Accept | 3.0535 | 1.0488 | 2.8857 | 2.8921 | 33 | 0.90525 | 1 | | 22 | Accept | 2.8937 | 3.8257 | 2.8857 | 2.8923 | 189 | 0.10788 | 1 | | 23 | Accept | 2.9159 | 1.2804 | 2.8857 | 2.8924 | 56 | 0.2066 | 1 | | 24 | Accept | 3.0064 | 0.33957 | 2.8857 | 2.8928 | 11 | 0.64825 | 1 | | 25 | Accept | 2.924 | 2.6837 | 2.8857 | 2.893 | 143 | 0.07429 | 1 | | 26 | Accept | 2.9278 | 2.0161 | 2.8857 | 2.8929 | 110 | 0.097036 | 1 | | 27 | Accept | 2.8927 | 9.267 | 2.8857 | 2.893 | 491 | 0.077697 | 1 | | 28 | Accept | 2.8908 | 2.2705 | 2.8857 | 2.8931 | 118 | 0.16033 | 1 | | 29 | Accept | 3.1392 | 2.8662 | 2.8857 | 2.8931 | 149 | 0.99418 | 1 | | 30 | Accept | 2.8992 | 8.9458 | 2.8857 | 2.8932 | 484 | 0.049505 | 1 |

图中包含一个axes对象。标题为Min objective vs. Number of function求值的axis对象包含两个类型为line的对象。这些对象表示最小观测目标,估计最小目标。

__________________________________________________________ 优化完成。最大目标:达到30。总函数评估:30总运行时间:74.0777秒总目标函数评估时间:56.9598最佳观察可行点:NumLearningCycles LearnRate maxnum分裂_________________ _________ ____________ 10 0.33086 1观察目标函数值= 2.8857估计目标函数值= 2.8943函数评估时间= 0.26296最佳估计可行点(根据模型):NumLearningCycles LearnRate maxnumfragments _________________ _________ ____________ 10 0.34025 1估计的目标函数值= 2.8932估计的函数评估时间= 0.35464
mdl = RegressionEnsemble PredictorNames: {1x4 cell} ResponseName: 'MPG' CategoricalPredictors: [] ResponseTransform: 'none' NumObservations: 94 HyperparameterOptimizationResults: [1x1 BayesianOptimization] numtraination10 Method: 'LSBoost' LearnerNames: {'Tree'} reasonforterminate: '完成所请求的训练周期数后正常终止。'FitInfo: [10x1 double] FitInfoDescription: {2x1 cell

输入参数

全部折叠

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

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

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

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

请注意

为了节省内存和执行时间,提供X而且Y而不是资源描述

数据类型:表格

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

您必须指定ResponseVarName作为字符向量或字符串标量。例如,如果资源描述。Y是响应变量,则指定ResponseVarName作为“Y”.否则,fitrensemble的所有列资源描述作为预测变量。

数据类型:字符|字符串

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

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

公式中的变量名必须是资源描述Tbl.Properties.VariableNames)和有效的MATLAB®标识符。中的变量名可以进行验证资源描述通过使用isvarname函数。如果变量名无效,则可以使用matlab.lang.makeValidName函数。

数据类型:字符|字符串

预测数据,指定为数值矩阵。

每一行对应一个观察结果,每列对应一个预测变量。

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

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

数据类型:|

响应,指定为数值向量。中的每个元素Y响应的观察是否在相应的行X资源描述.的长度Y的行数X资源描述必须是相等的。

数据类型:|

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:“NumLearningCycles”,500年,“方法”,“包”、“学习者”,templateTree(),“CrossVal”,“上”使用10倍交叉验证对500个袋装回归树集合进行交叉验证。

请注意

方法不能使用任何交叉验证名称-值参数“OptimizeHyperparameters”名称-值参数。的交叉验证“OptimizeHyperparameters”只有使用“HyperparameterOptimizationOptions”名称-值参数。

一般系综选择

全部折叠

集合聚合方法,指定为逗号分隔的对,由“方法”而且“LSBoost”“包”

价值 方法 笔记
“LSBoost” 最小二乘增加(LSBoost) 方法可以指定收缩的学习率“LearnRate”名称-值对的论点。
“包” 引导聚合(装袋,例如,随机森林)[2] fitrensemble默认情况下,在每次分割(随机森林)时使用随机预测器选择的装袋。要使用没有随机选择的袋装,使用树学习器“NumVariablesToSample”值是“所有”

有关集成聚合算法和示例的详细信息,请参见算法整体算法,选择一种适用的集成聚合方法

例子:“方法”,“包”

集合学习周期的个数,指定为逗号分隔的对,由“NumLearningCycles”一个正整数。在每个学习周期中,软件为每个模板对象训练一个弱学习者学习者.因此,软件进行训练NumLearningCycles *元素个数(学习者)学习者。

该软件使用所有训练有素的学习者组成集成并存储它们Mdl。训练有素的

有关更多细节,请参见提示

例子:“NumLearningCycles”,500年

数据类型:|

弱学习者使用的集合,指定为逗号分隔的对组成“学习者”而且“树”,一个树模板对象,或树模板对象的单元向量。

  • “树”(默认)fitrensemble使用默认的回归树学习器,这与使用相同templateTree ().的默认值。templateTree ()取决于的值“方法”

    • 对于袋装决策树,最大决策分割次数(“MaxNumSplits”)是n - 1,在那里n是观察数。为每次拆分随机选择的预测器数量(“NumVariablesToSample”)是预测因子数量的三分之一。因此,fitrensemble长出深深的决策树。您可以种植较浅的树以减少模型复杂性或计算时间。

    • 对于增强的决策树,“MaxNumSplits”是10,“NumVariablesToSample”“所有”.因此,fitrensemble生长浅的决策树。你可以种植更深的树以获得更好的精度。

    看到templateTree为弱学习者的默认设置。

  • 树模板对象-fitrensemble使用创建的树模板对象templateTree.的名称-值对参数templateTree指定树学习器的设置。

  • 细胞的向量树模板对象-fitrensemble生长每个学习周期的回归树(参见NumLearningCycles).例如,对于由两种类型的回归树组成的集合,供应{t1 t2},在那里t1而且t2是否返回回归树模板对象templateTree

要获得可重复的结果,必须指定“复制”的名值对参数templateTree作为真正的如果“NumVariablesToSample”不是“所有”

有关要培训的学习者数量的详细信息,请参见NumLearningCycles而且提示

例子:“学习者”,templateTree (MaxNumSplits, 5)

打印输出频率,指定为逗号分隔的对,由“NPrint”一个正整数或者“关闭”

跟踪的数量弱的学习者折叠fitrensemble到目前为止,请指定一个正整数。也就是说,如果指定的是正整数

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

  • 还有一个交叉验证选项fitrensemble每次完成训练时,向命令行显示一条消息折叠。

如果您指定“关闭”,然后fitrensemble当完成对较弱学习者的训练时,不显示消息。

提示

为了最快的训练一些增强的决策树,设置NPrint设置为默认值“关闭”.此提示在分类时保持不变方法“AdaBoostM1”“AdaBoostM2”“GentleBoost”,或“LogitBoost”,或回归时方法“LSBoost”

例子:“NPrint”,5

数据类型:||字符|字符串

数值预测器的箱数,指定为逗号分隔的对,由“NumBins”和一个正整数标量。

  • 如果“NumBins”Value为空(默认值)fitrensemble不丢弃任何预测器。

  • 如果指定“NumBins”值作为正整数标量(numBins),然后fitrensemble最多将每个数字预测器分类numBins等概率箱子,然后在箱子指数上生长树,而不是原始数据。

    • 箱子的数量可以小于numBins如果预测因子小于numBins独特的价值观。

    • fitrensemble不丢弃绝对预测器。

当您使用大型训练数据集时,此分箱选项会加速训练,但可能会导致潜在的准确性下降。你可以试着“NumBins”,50岁首先,然后根据准确率和训练速度改变值。

经过训练的模型将桶边存储在BinEdges财产。

例子:“NumBins”,50岁

数据类型:|

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

价值 描述
正整数向量

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

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

逻辑向量

一个真正的入口意味着对应的预测因子是绝对的。向量的长度是p

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

默认情况下,如果预测器数据在表中(资源描述),fitrensemble如果变量是逻辑向量、无序分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定该变量是分类的。如果预测器数据是一个矩阵(X),fitrensemble假设所有的预测器都是连续的。要将任何其他预测器标识为类别预测器,请使用CategoricalPredictors名称-值参数。

例子:“CategoricalPredictors”、“所有”

数据类型:||逻辑|字符|字符串|细胞

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

  • 如果你提供X而且Y,然后你可以使用PredictorNames中的预测变量指定名称X

    • 名字的顺序PredictorNames的列顺序必须对应X.也就是说,PredictorNames {1}X (: 1)PredictorNames {2}X (:, 2),等等。同时,大小(X, 2)而且元素个数(PredictorNames)必须是相等的。

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

  • 如果你提供资源描述,然后你可以使用PredictorNames选择在训练中使用的预测变量。也就是说,fitrensemble中的预测变量PredictorNames训练过程中的响应变量。

    • PredictorNames的子集Tbl.Properties.VariableNames和不能包含响应变量的名称。

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

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

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

数据类型:字符串|细胞

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

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

  • 如果你提供ResponseVarName公式,那么你就不能使用ResponseName

例子:“ResponseName”、“反应”

数据类型:字符|字符串

响应转换,指定为两者之一“没有”或者一个函数句柄。默认值是“没有”,这意味着@ (y) y,或者不进行变换。对于MATLAB函数或您定义的函数,使用它的函数句柄进行响应变换。函数句柄必须接受一个向量(原始响应值)并返回一个相同大小的向量(转换后的响应值)。

例子:假设您创建了一个函数句柄,它将指数变换应用于输入向量myfunction = @ (y) exp (y).然后,您可以将响应转换指定为myfunction ResponseTransform,

数据类型:字符|字符串|function_handle

平行的选项

全部折叠

用于并行计算和设置作为结构指定的随机数的选项。创建选项结构statset

请注意

您需要并行计算工具箱™进行并行计算。

该表列出了选项字段及其值。

字段名 价值 默认的
UseParallel

将此值设置为真正的并行计算并行计算并行集成训练要求您设置“方法”名称-值参数“包”.并行训练只适用于树形学习者,树形学习者的默认类型是“包”

UseSubstreams

将此值设置为真正的以可复制的方式并行地进行计算。

要重复计算,设置到允许子流的类型:“mlfg6331_64”“mrg32k3a”.方法使用树模板“复制”名称-值参数设置为真正的.看到并行统计计算中的再现性

将此值指定为RandStream对象或此类对象的单元格数组。使用单个对象时除外UseParallel值是真正的UseSubstreams值是.在这种情况下,使用与并行池大小相同的单元格数组。 如果不指定,然后fitrensemble使用默认流或多个流。

有关使用可重复并行训练的示例,请参见列车分类并行集成

对于双核及以上系统,fitrensemble使用Intel并行化训练®线程构建块(TBB)。因此,指定UseParallel选择真正的可能不能在一台计算机上提供显著的加速。有关Intel TBB的详细信息,请参见https://www.intel.com/content/www/us/en/developer/tools/oneapi/onetbb.html

例子:“选项”,statset (UseParallel,真的)

数据类型:结构体

交叉验证选择

全部折叠

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

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

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

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

例子:“Crossval”,“上”

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

要创建交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或Leaveout

例子:假设您创建一个随机分区,对500个观察结果进行5次交叉验证本量利= cvpartition(500年,“KFold”,5).然后,您可以使用指定交叉验证的模型“CVPartition”,本量利

用于抵制验证的数据的一部分,指定为范围(0,1)中的标量值。如果您指定‘坚持’,p,然后软件完成以下步骤:

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

  2. 存储紧凑的,训练过的模型训练有素的属性的交叉验证模型。

要创建交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或Leaveout

例子:“坚持”,0.1

数据类型:|

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

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

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

  3. 存储k紧凑,训练有素的模型k中的-by-1单元格向量训练有素的属性的交叉验证模型。

要创建交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或Leaveout

例子:“KFold”,5

数据类型:|

保留一个交叉验证标志,指定为“上”“关闭”.如果您指定“Leaveout”,“上”,那么对于每一个n观察(n是否指定了观察数(不包括遗漏的观察数)NumObservations属性),软件完成以下步骤:

  1. 保留一个观察结果作为验证数据,并使用另一个来训练模型n- 1的观察。

  2. 存储n紧凑,训练有素的模型n中的-by-1单元格向量训练有素的属性的交叉验证模型。

要创建交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或Leaveout

例子:“Leaveout”,“上”

其他回归选项

全部折叠

观察权值,用逗号分隔的对表示“重量”和正数值向量或变量名资源描述.软件对每一行的观察结果进行加权X资源描述的对应值权重.的大小权重必须等于的行数X资源描述

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

的值规范化软件权重加起来等于1

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

数据类型:||字符|字符串

抽样方案

全部折叠

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

例子:“FResample”,0.75

数据类型:|

标志,指示带有替换的采样,指定为逗号分隔的对,由“替换”而且“关闭”“上”

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

  • “关闭”,该软件对训练观察结果进行采样,不进行替换。如果你设置重新取样“上”,然后软件假定统一权重对训练观察结果进行采样。如果您还指定了一种增强方法,那么软件将通过调整观察结果的权重来增强。

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

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

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

  • 如果方法是一个提升方法,那么:

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

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

  • 如果方法“包”,然后重新取样的必须“上”.该软件对训练观察结果的一小部分进行了重新采样FResample)有或没有替换(见取代).

如果指定使用重采样重新取样,那么对整个数据集重新采样是一种很好的做法。也就是说,使用默认设置为1FResample

LSBoost方法选择

全部折叠

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

用收缩法训练一个整体LearnRate值小于1例如,0.1是一个受欢迎的选择。使用收缩训练集成需要更多的学习迭代,但通常可以获得更好的精度。

例子:“LearnRate”,0.1

数据类型:|

Hyperparameter优化选项

全部折叠

参数要优化,指定为逗号分隔的对,由“OptimizeHyperparameters”和以下其中之一:

  • “没有”-不要优化。

  • “汽车”——使用{‘法’,‘NumLearningCycles’,‘LearnRate}以及指定的默认参数学习者

    • 学习者“树”(默认){' MinLeafSize '}

    请注意

    hyperparameter优化,学习者必须是单个参数,而不是字符串数组或单元格数组。

  • “所有”—优化所有符合条件的参数。

  • 合格参数名称的字符串数组或单元格数组

  • 向量的optimizableVariable的输出hyperparameters

优化尝试最小化交叉验证的损失(错误)fitrensemble通过改变参数。要控制交叉验证类型和优化的其他方面,请使用HyperparameterOptimizationOptions名称-值对。

请注意

的值“OptimizeHyperparameters”覆盖使用其他名称-值参数指定的任何值。例如,设置“OptimizeHyperparameters”“汽车”原因fitrensemble参数对应的超参数“汽车”选项,并忽略超参数的任何指定值。

符合条件的参数fitrensemble是:

  • 方法-符合条件的方法是“包”“LSBoost”

  • NumLearningCycles- - - - - -fitrensemble在正整数之间搜索,默认情况下按范围对数扩展[10500]

  • LearnRate- - - - - -fitrensemble在正实数之间的搜索,默认情况下按对数缩放范围(1 e - 3, 1)

  • MinLeafSize- - - - - -fitrensemble在范围内按对数缩放的整数之间搜索[1,马克斯(2楼(NumObservations / 2)))

  • MaxNumSplits- - - - - -fitrensemble在范围内按对数缩放的整数之间搜索NumObservations-1[1,马克斯(2))

  • NumVariablesToSample- - - - - -fitrensemble在范围内的整数之间进行搜索NumPredictors[1,马克斯(2))

通过传递vector来设置非默认参数optimizableVariable具有非默认值的对象。例如,

负载carsmallparams = hyperparameters (“fitrensemble”,英里/加仑(功率、重量)“树”);参数(4)。范围=(1、20);

通过参数个数的价值OptimizeHyperparameters

默认情况下,迭代显示出现在命令行中,并根据优化中的超参数的数量显示图形。对于优化和绘图,目标函数为Log(1 +交叉验证损失).要控制迭代显示,请设置详细的场的“HyperparameterOptimizationOptions”名称-值参数。要控制情节,设置ShowPlots场的“HyperparameterOptimizationOptions”名称-值参数。

示例请参见优化回归合奏

例子:OptimizeHyperparameters,{‘法’,‘NumLearningCycles’,‘LearnRate’,‘MinLeafSize’,‘MaxNumSplits}

优化选项,指定为结构。的效果OptimizeHyperparameters名称-值参数。结构中的所有字段都是可选的。

字段名 默认的
优化器
  • “bayesopt”-使用贝叶斯优化。在内部,这个设置调用bayesopt

  • “gridsearch”-使用网格搜索NumGridDivisions每个维度值。

  • “randomsearch”-在其中随机搜索MaxObjectiveEvaluations点。

“gridsearch”以随机顺序进行搜索,使用统一采样而不从网格中替换。优化后,可以使用该命令获得网格顺序的表sortrows (Mdl.HyperparameterOptimizationResults)

“bayesopt”
AcquisitionFunctionName

  • “expected-improvement-per-second-plus”

  • “expected-improvement”

  • “expected-improvement-plus”

  • “expected-improvement-per-second”

  • “lower-confidence-bound”

  • “probability-of-improvement”

获取函数,其名称包括每秒不会产生可重复的结果,因为优化依赖于目标函数的运行时间。获取函数,其名称包括+当他们过度开发某一区域时,修改他们的行为。有关更多细节,请参见获取函数类型

“expected-improvement-per-second-plus”
MaxObjectiveEvaluations 目标函数评价的最大次数。 30.“bayesopt”而且“randomsearch”,和整个网格“gridsearch”
MaxTime

时间限制,指定为正实标量。时间限制以秒为单位,用抽搐而且toc.运行时间可以超过MaxTime因为MaxTime不会中断函数的计算。

NumGridDivisions “gridsearch”,表示每个维度的值的个数。该值可以是一个给出每个维度值数量的正整数向量,也可以是一个适用于所有维度的标量。对于类别变量,该字段将被忽略。 10
ShowPlots 指示是否显示图形的逻辑值。如果真正的,该字段根据迭代次数绘制最佳观测目标函数值。如果你使用贝叶斯优化(优化器“bayesopt”),则该字段也绘制出最佳估计的目标函数值。最佳观测目标函数值和最佳估计目标函数值对应于BestSoFar(观察)而且BestSoFar (estim)。列的迭代显示,分别。您可以在属性中找到这些值ObjectiveMinimumTrace而且EstimatedObjectiveMinimumTraceMdl。HyperparameterOptimizationResults.如果问题包含一个或两个优化参数的贝叶斯优化,那么ShowPlots并根据参数绘制了目标函数模型。 真正的
SaveIntermediateResults 指示何时是否保存结果的逻辑值优化器“bayesopt”.如果真正的,该字段将覆盖名为“BayesoptResults”在每一个迭代。变量是aBayesianOptimization对象。
详细的

在命令行显示:

  • 0-无迭代显示

  • 1——迭代显示

  • 2-迭代显示额外的信息

详细信息请参见bayesopt详细的名称-值参数和示例使用贝叶斯优化优化分类器拟合

1
UseParallel 指示是否并行运行贝叶斯优化的逻辑值,这需要“并行计算工具箱”。由于并行时序的不可再现性,并行贝叶斯优化不一定产生可再现的结果。有关详细信息,请参见平行的贝叶斯优化
重新分区

指示是否在每次迭代时重新划分交叉验证的逻辑值。如果这个字段是,优化器使用单个分区进行优化。

设置真正的通常给出最健壮的结果,因为它考虑了分区噪声。然而,为了得到好的结果,真正的需要至少两倍的函数求值。

只使用以下三个选项中的一个。
CVPartition 一个cvpartition对象,如由cvpartition “Kfold”,5如果不指定交叉验证字段
坚持 范围内的标量(0,1)表示抵制分数
Kfold 大于1的整数

例子:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)

数据类型:结构体

输出参数

全部折叠

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

模型对象 指定任何交叉验证选项? 方法设置 重新取样设置
RegressionBaggedEnsemble 没有 “包” “上”
RegressionEnsemble 没有 “LSBoost” “关闭”
RegressionPartitionedEnsemble 是的 “LSBoost”“包” “关闭”“上”

控制交叉验证的名值对参数为CrossVal坚持KFoldLeaveout,CVPartition

的属性来引用Mdl,使用点表示法。例如,要访问或显示未交叉验证的集成的弱学习模型对象的单元格向量,请输入Mdl。训练有素的在命令行。

提示

  • NumLearningCycles从几十到几千不等。通常,一个具有良好预测能力的集合需要几百到几千个弱学习者。然而,你不必一次训练一个乐团那么多周期。你可以先培养几十个学习者,检查他们的整体表现,然后,如果有必要,训练更弱的学习者使用重新开始

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

  • 如果指定使用重采样重新取样,那么对整个数据集重新采样是一种很好的做法。即使用的默认设置1FResample

  • 在训练一个模型之后,您可以生成预测新数据响应的C/ c++代码。生成C/ c++代码需要MATLAB编码器™.有关详细信息,请参见代码生成简介

算法

参考文献

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

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

Freund, Y.和R. E. Schapire。在线学习决策理论的推广及其在提升中的应用。计算机与系统科学J. J.,第55卷,119-139页,1997。

[4] Friedman, J. <贪婪函数近似:梯度增强机>。统计年鉴2001年,《中华人民共和国学报》第29卷第5期,第1189-1232页。

[5]哈斯蒂,T., R.蒂布希拉尼,J.弗里德曼。统计学习的要素部分版,施普林格,纽约,2008。

扩展功能

版本历史

介绍了R2016b

Baidu
map