fitrtree

拟合二叉决策树进行回归

描述

= fitrtree (资源描述ResponseVarName返回基于表中输入变量(也称为预测器、特征或属性)的回归树资源描述而输出(响应)包含在资源描述。ResponseVarName.返回的是二叉树,其中每个分支节点是根据列的值分割的资源描述

= fitrtree (资源描述公式根据表中包含的输入变量返回回归树资源描述.输入公式是否有响应的解释模型和预测变量的子集资源描述曾经适合

= fitrtree (资源描述Y根据表中包含的输入变量返回回归树资源描述这是向量的输出Y

例子

= fitrtree (XY根据输入变量返回一个回归树X以及输出Y.返回的是二叉树,其中每个分支节点是根据列的值分割的X

例子

= fitrtree (___名称,值除以前语法中的任何输入参数组合外,还使用一个或多个名称-值对参数指定选项。例如,您可以指定观察权重或训练交叉验证的模型。

例子

全部折叠

加载样例数据。

负载carsmall

使用样本数据构造一个回归树。响应变量是每加仑英里数,MPG。

tree = fitrtree([重量,气缸],MPG,...“CategoricalPredictors”2,“MinParentSize”, 20岁,...“PredictorNames”, {' W '“C”})
tree = RegressionTree PredictorNames: {'W' 'C'} ResponseName: 'Y' CategoricalPredictors: 2 ResponseTransform: 'none' NumObservations: 94属性,方法

预测4000磅重的4缸、6缸和8缸汽车的里程。

MPG4Kpred = predict(tree,[4000 4;4000 6;4000 8])
MPG4Kpred =3×119.2778 19.2778 14.3889

fitrtree默认情况下生长深度决策树。您可以种植较浅的树,以减少模型复杂性或计算时间。要控制树木的深度,请使用“MaxNumSplits”“MinLeafSize”,或“MinParentSize”名称-值对参数。

加载carsmall数据集。考虑位移马力,重量作为反应的预测因素英里/加仑

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

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

  • N - 1MaxNumSplitsn是训练样本量。

  • 1MinLeafSize

  • 10MinParentSize

对于大的训练样本量,这些默认值往往生长得很深。

使用用于树深度控制的默认值训练回归树。使用10倍交叉验证对模型进行交叉验证。

rng (1);%用于再现性MdlDefault = fitrtree(X,MPG,“CrossVal”“上”);

绘制树上施加的分裂数量的直方图。分割的数量比叶结点的数量少1。还有,看看其中一棵树。

numBranches = @(x)sum(x. isbranch);mdldefaultnumsplitting = cellfun(numBranches, MdlDefault.Trained);图;直方图(mdlDefaultNumSplits)

视图(MdlDefault。训练有素的{1},“模式”“图”

平均分裂次数在14到15次之间。

假设您想要一个回归树,它不像使用默认分割数训练的回归树那么复杂(深)。训练另一棵回归树,但将最大分割数设置为7,这大约是默认回归树中平均分割数的一半。使用10倍交叉验证对模型进行交叉验证。

Mdl7 = fitrtree(X,MPG,“MaxNumSplits”7“CrossVal”“上”);视图(Mdl7。Trained{1},“模式”“图”

比较模型的交叉验证均方误差(mse)。

mseDefault = kfoldLoss(MdlDefault)
mseDefault = 25.7383
mse7 = kfoldLoss(Mdl7)
Mse7 = 26.5748

Mdl7的复杂程度要低得多,性能只比MdlDefault

自动使用超参数优化fitrtree

加载carsmall数据集。

负载carsmall

使用重量而且马力作为预测因素英里/加仑.通过使用自动超参数优化,找到最小化5倍交叉验证损失的超参数。

为了重现性,设置随机种子并使用“expected-improvement-plus”采集功能。

X =[重量,马力];Y = mpg;rng默认的Mdl = fitrtree(X,Y,“OptimizeHyperparameters”“汽车”...“HyperparameterOptimizationOptions”结构(“AcquisitionFunctionName”...“expected-improvement-plus”))
|======================================================================================| | Iter | Eval |目的:| |目的BestSoFar | BestSoFar | MinLeafSize | | | |结果日志(1 +损失)运行时| | | (estim(观察) .) | | |======================================================================================| | 最好1 | | 3.2818 | 0.15504 | 3.2818 | 3.2818 | 28 |
| 2 |接受| 3.4183 | 0.039073 | 3.2818 | 3.2888 | 1 |
| 3 | Best | 3.1491 | 0.064001 | 3.1491 | 3.166 | 4 |
| 4 | Best | 2.9885 | 0.044758 | 2.9885 | 2.9885 | 9 |
| 5 |接受| 2.9978 | 0.062209 | 2.9885 | 2.9885 | 7 |
| 6 |接受| 3.0203 | 0.059873 | 2.9885 | 3.0013 | 8 |
| 7 |接受| 2.9885 | 0.038612 | 2.9885 | 2.9981 | 9 |
| 8 | Best | 2.9589 | 0.033799 | 2.9589 | 2.985 | 10 |
| 9 |接受| 3.0459 | 0.044544 | 2.9589 | 2.9895 | 12 |
| 10 |接受| 4.1881 | 0.047524 | 2.9589 | 2.9594 | 50 |
| 11 |接受| 3.4182 | 0.034722 | 2.9589 | 2.9594 | 2 |
| 12 |接受| 3.0376 | 0.034222 | 2.9589 | 2.9592 | 6 |
| 13 |接受| 3.1453 | 0.032823 | 2.9589 | 2.9856 | 19 |
| 14 |接受| 2.9589 | 0.033597 | 2.9589 | 2.9591 | 10 |
| 15 |接受| 2.9589 | 0.034081 | 2.9589 | 2.959 | 10 |
| 16 |接受| 2.9589 | 0.03319 | 2.9589 | 2.959 | 10 |
| 17 |接受| 3.3055 | 0.034701 | 2.9589 | 2.959 | 3 |
| 18 |接受| 3.4577 | 0.033698 | 2.9589 | 2.9589 | 37 |
| 19 |接受| 3.1584 | 0.033677 | 2.9589 | 2.9589 | 15 |
| 20 |接受| 3.107 | 0.034012 | 2.9589 | 2.9589 | 5 |
|======================================================================================| | Iter | Eval |目的:| |目的BestSoFar | BestSoFar | MinLeafSize | | | |结果日志(1 +损失)运行时| | | (estim(观察) .) | | |======================================================================================| | 21日|接受| 3.0398 | 0.033158 | 2.9589 | 2.9589 | 23 |
| 22 |接受| 3.3226 | 0.036408 | 2.9589 | 2.9589 | 32 |
| 23 |接受| 3.1883 | 0.033603 | 2.9589 | 2.9589 | 17 |
| 24 |接受| 4.1881 | 0.03244 | 2.9589 | 2.9589 | 43 |
| 25 |接受| 3.0123 | 0.033589 | 2.9589 | 2.9589 | 11 |
| 26 |接受| 3.0932 | 0.042035 | 2.9589 | 2.9589 | 21 |
| 27 |接受| 3.078 | 0.033253 | 2.9589 | 2.9589 | 13 |
| 28 |接受| 3.2818 | 0.033183 | 2.9589 | 2.9589 | 25 |
| 29 |接受| 3.0992 | 0.033187 | 2.9589 | 2.9589 | 14 |
| 30 |接受| 3.4361 | 0.033507 | 2.9589 | 2.9589 | 34 |

__________________________________________________________ 优化完成。最大目标达到30个。总函数计算:30总运行时间:22.0354秒。总目标函数评估时间:1.2725最佳观测可行点:MinLeafSize ___________ 10观测目标函数值= 2.9589估计目标函数值= 2.9589估计函数评估时间= 0.033799最佳估计可行点(根据模型):MinLeafSize ___________ 10估计目标函数值= 2.9589估计函数评估时间= 0.039529
Mdl = RegressionTree ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none' NumObservations: 94 HyperparameterOptimizationResults: [1×1 BayesianOptimization] Properties, Methods

加载carsmall数据集。考虑一个模型,该模型根据汽车的加速度、气缸数、发动机排量、马力、制造商、车型年份和重量来预测汽车的平均燃油经济性。考虑气缸制造行业,Model_Year作为分类变量。

负载carsmall圆柱=分类(圆柱);Mfg = categorical(cellstr(Mfg));Model_Year = categorical(Model_Year);X =表(加速度,气缸,排量,马力,制造,...Model_Year、重量、MPG);

显示类别变量中表示的类别数量。

numCylinders = number (categories(Cylinders))
numCylinders = 3
numMfg = nummel(类别(Mfg))
numMfg = 28
numModelYear = nummel(类别(Model_Year))
numModelYear = 3

因为只有三个类别气缸而且Model_Year,标准CART,预测器拆分算法更倾向于在这两个变量上拆分一个连续预测器。

使用整个数据集训练回归树。要生长无偏树,请指定用于分割预测器的曲率测试。因为数据中有缺失的值,所以指定代理分割的使用。

Mdl = fitrtree(X,“英里”“PredictorSelection”“弯曲”“代孕”“上”);

通过将每个预测器上的分裂导致的风险变化相加并除以分支节点的数量来估计预测器的重要性值。用柱状图比较估算值。

imp = predictorImportance(Mdl);图;酒吧(imp);标题(“预测者重要性估计”);ylabel (“估计”);包含(“预测”);H = gca;h.XTickLabel = mld . predictornames;h.XTickLabelRotation = 45;h.TickLabelInterpreter =“没有”

在这种情况下,位移是最重要的预测因素,其次是马力

fitrtree默认情况下生长深度决策树。建立一个较浅的树,需要更少的通过一个高数组。使用“MaxDepth”名称-值对参数来控制最大树深度。

在高数组上执行计算时,MATLAB®使用并行池(如果有并行计算工具箱™,则默认为并行池)或本地MATLAB会话。如果要在具有并行计算工具箱时使用本地MATLAB会话运行示例,可以使用mapreduce函数。

加载carsmall数据集。考虑位移马力,重量作为反应的预测因素英里/加仑

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

转换内存中的数组X而且英里/加仑到高数组。

tx =高(X);
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工人数:6)。
ty = tall(MPG);

使用所有的观察数据建立一个回归树。让树生长到最大可能的深度。

为了重现性,使用设置随机数生成器的种子rng而且tallrng.根据工作人员的数量和tall数组的执行环境,结果可能有所不同。详细信息请参见控制代码运行的位置(MATLAB)。

rng (“默认”) tallrng (“默认”) Mdl = fitrtree(tx,ty);
评估高表达式使用并行池“当地”:——通过1 2:在3.3秒完成,通过2 2:在1秒完成评估在6.8秒完成评估高表达式使用并行池“当地”:——通过1 6:在1.4秒完成,通过2 6:在0.41秒完成,通过3 6:在2.3秒完成,通过4 6:在3.6秒完成,通过5 6:在1.5秒完成,通过6 6:在2.9秒完成评估在14秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.45秒完成,通过2 7:在0.36秒完成,通过3 7:在1.2秒完成,通过4 7:在2.5秒完成,通过5 7:在0.85秒完成,通过6 7:在1.4秒完成,通过7 7:在2.2秒完成评估在10秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.45秒完成,通过2 7:在0.36秒完成,通过3 7:在1.1秒完成,通过4 7:在2.6秒完成,通过5 7:在1秒完成,通过6 7:在1.5秒完成,通过7 7:在3.2秒完成评估在12秒完成评估高表达使用并行池“当地”:——通过1 7:在0.43秒完成,通过2 7:在0.38秒完成,通过3 7:在1.6秒完成,通过4 7:在2.6秒完成,通过5 7:完成0.89秒-通过6 7:在1.2秒完成,通过7 7:在2.3秒完成评估在11秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.47秒完成,通过2 7:在0.38秒完成,通过3 7:在1.1秒完成,通过4 7:在2秒完成,通过5 7:在0.76秒完成,通过6 7:在1.2秒完成,通过7 7:在2.4秒完成评估在9.5秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.42秒完成,通过2 7:在0.33秒完成,通过3 7:在1.2秒完成,通过4 7:在2.2秒完成,通过5 7:在0.82秒完成,通过6 7:在1.3秒完成,通过7 7:在2.2秒完成评估在9.7秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.49秒完成,通过2 7:在0.36秒完成,通过3 7:在1.1秒完成,通过4 7:在2.8秒完成,通过5 7:在1.2秒完成,通过6 7:在1.1秒完成,通过7 7:在2.3秒完成评估在10秒完成评估高表达使用并行池“当地”:——通过1 7:在0.5秒完成,通过2 7:在0.34秒完成,通过3 7:在1.1秒完成,通过4 7:在1.8秒完成,通过5 7:在0.75秒内完成-通过7次中的第6次:在1.1秒内完成-通过7次中的第7次:在1.8秒内完成评估在8.5秒内完成

查看已训练的树Mdl

视图(Mdl,“模式”“图”

Mdl树有深度吗8

估计样本内均方误差。

MSE_Mdl =收集(丢失(Mdl,tx,ty))
使用并行池“本地”评估tall表达式:-通过1 / 1:在3.1秒内完成评估在3.7秒内完成
MSE_Mdl = 4.9078

使用所有的观察数据建立一个回归树。通过指定最大树深度来限制树深度4

Mdl2 = fitrtree(tx,ty,“MaxDepth”4);
评估高表达式使用并行池“当地”:——通过1 2:在0.38秒完成,通过2 2:在0.35秒完成评估在1.2秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.42秒完成,通过2 7:在0.35秒完成,通过3 7:在1.2秒完成,通过4 7:在1.9秒完成,通过5 7:在0.73秒完成,通过6 7:在1.2秒完成,通过7 7:在2.1秒完成评估在8.9秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.44秒完成,通过2 7:在0.39秒完成,通过3 7:在1.1秒完成,通过4 7:在2.1秒完成,通过5 7:在0.74秒完成,通过6 7:在1.1秒完成,通过7 7:在2.7秒完成评估在9.7秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.46秒完成,通过2 7:在0.37秒完成,通过3 7:在1.1秒完成,通过4 7:在1.9秒完成,通过5 7:在0.79秒完成,通过6 7:在1.1秒完成,通过7 7:在2.3秒完成评估在9.1秒完成评估高表达使用并行池“当地”:——通过1 7:在0.43秒完成,通过2 7:在0.41秒完成,通过3 7:在1.1秒完成,通过4 7:在1.9秒完成,通过5 7:在0.72秒内完成-通过7次中的第6次:在1秒内完成-通过7次中的第7次:在2.2秒内完成评估在8.9秒内完成

查看已训练的树Mdl2

视图(Mdl2,“模式”“图”

估计样本内均方误差。

MSE_Mdl2 =收集(丢失(Mdl2,tx,ty))
使用并行池“本地”评估tall表达式:-通过1 / 1:在0.86秒内完成评估,在1.3秒内完成
MSE_Mdl2 = 9.3903

Mdl2深度为4且样本内均方误差高于的均方误差的较不复杂的树吗Mdl

使用高数组自动优化回归树的超参数。示例数据集是carsmall数据集。本示例将数据集转换为一个高数组,并使用它来运行优化过程。

在高数组上执行计算时,MATLAB®使用并行池(如果有并行计算工具箱™,则默认为并行池)或本地MATLAB会话。如果要在具有并行计算工具箱时使用本地MATLAB会话运行示例,可以使用mapreduce函数。

加载carsmall数据集。考虑位移马力,重量作为反应的预测因素英里/加仑

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

转换内存中的数组X而且英里/加仑到高数组。

tx =高(X);ty = tall(MPG);

方法自动优化超参数“OptimizeHyperparameters”名称-值对参数。找到最优“MinLeafSize”使拒绝交叉验证损失最小化的值。(指定“汽车”使用“MinLeafSize”)。为了重现性,使用“expected-improvement-plus”采集函数和设置随机数的种子发生器使用rng而且tallrng.根据工作人员的数量和tall数组的执行环境,结果可能有所不同。详细信息请参见控制代码运行的位置(MATLAB)。

rng (“默认”) tallrng (“默认”) [Mdl,FitInfo,HyperparameterOptimizationResults] = fitrtree(tx,ty,...“OptimizeHyperparameters”“汽车”...“HyperparameterOptimizationOptions”结构(“坚持”, 0.3,...“AcquisitionFunctionName”“expected-improvement-plus”))
使用并行池“本地”评估高表达式:-通过1:0%完成评估0%完成
-通过1对1:在1.1秒完成评估在1.5秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.72秒完成——通过2 4:在1.7秒完成,通过3 4:在2.7秒完成,通过4 4:在2.1秒完成评估在8.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.48秒完成,通过2 4:在1.2秒完成,通过3 4:在2.4秒完成,通过4 4:在1.9秒完成评估在6.8秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.52秒完成,通过2 4:在1.2秒完成,通过3 4:在2.6秒完成,通过4 4:在2秒完成评估在7.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.3秒完成,通过3 4:在2.5秒完成,通过4 4:在1.8秒完成评估在6.8秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.51秒完成,通过2 4:在1.2秒完成,通过3 4:在2.3秒完成,通过4 4:在1.7秒完成评估在6.5秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.1秒完成,通过3 4:在2.2秒完成,通过4 4:在1.6秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:通过1对1:在1秒完成评估在1.3秒完成  |======================================================================================| | Iter | Eval |目的:| |目的BestSoFar | BestSoFar | MinLeafSize | | | |结果日志(1 +损失)运行时| | | (estim(观察) .) | | |======================================================================================| | 最好1 | | 3.2007 | 57.801 | 3.2007 | 3.2007 | 2 |
评估高表达式使用并行池“当地”:通过1对1:在0.47秒完成评估在0.77秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.3秒完成,通过3 4:在3.2秒完成,通过4 4:在2.1秒完成评估在7.8秒完成评估高表达式使用并行池“当地”:-通过1的1:完成在0.73秒评估完成在0.99秒| 2 |错误| NaN | 12.911 | NaN | 3.2007 | 46 |
评估高表达式使用并行池“当地”:通过1对1:在0.47秒完成评估在0.76秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.1秒完成,通过3 4:在2.3秒完成,通过4 4:在2秒完成评估在6.7秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.51秒完成,通过2 4:完成1.3秒-通过3 4:在2.3秒完成,通过4 4:在1.8秒完成评估在6.7秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:在1.2秒完成,通过3 4:在2.2秒完成,通过4 4:在1.9秒完成评估在6.5秒完成评估高表达式使用并行池“当地”:-通过1的1:0.68秒完成评估0.96秒完成| 3 |最佳| 3.1876 | 28.817 | 3.1876 | 3.1884 | 18 |
评估高表达式使用并行池“当地”:通过1对1:在0.44秒完成评估在0.73秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:在1.2秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:完成1.2秒-通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.48秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.5秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.1秒内完成-通过3 / 4:在2秒内完成-通过4 / 4:在1.5秒内完成评估在5.9秒内完成评估使用并行池“本地”的高表达式:-通过1 / 1:在0.68秒内完成评估在0.94秒内完成| 4 |最佳| 2.9048 | 34.714 | 2.9048 | 2.9537 | 6 |
评估高表达式使用并行池“当地”:通过1对1:在0.44秒完成评估在0.72秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:在1.2秒完成,通过3 4:在2.1秒完成,通过4 4:在1.7秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:完成1.2秒-通过3 4:完成2秒-通过4 4:在1.7秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6秒完成评估高表达式使用并行池“当地”:-通过1的1:0.66秒完成评估0.93秒完成| 5 |接受| 3.2895 | 27.092 | 2.9048 | 2.9048 | 15 |
评估高表达式使用并行池“当地”:通过1对1:在0.45秒完成评估在0.73秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.51秒完成,通过2 4:在1.2秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:完成1.2秒-通过3 4:在2.3秒完成,通过4 4:在2秒完成评估在6.7秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.2秒完成,通过3 4:在2.1秒完成,通过4 4:在2.1秒完成评估在6.8秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.1秒内完成-通过3 / 4:在2.1秒内完成-通过4 / 4:在1.6秒内完成评估在6秒内完成评估使用并行池“本地”:-通过1 / 1:在0.66秒内完成评估在0.93秒内完成| 6 |接受| 3.1641 | 36.435 | 2.9048 | 3.1493 | 5 |
评估高表达式使用并行池“当地”:通过1对1:在0.46秒完成评估在0.74秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.48秒完成,通过2 4:在1.4秒完成,通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.4秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:完成1.1秒-通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.1秒完成,通过3 4:在2.1秒完成,通过4 4:在1.7秒完成评估在6.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.49秒完成,通过2 4:在1.2秒内完成-通过3 / 4:在2.1秒内完成-通过4 / 4:在1.6秒内完成评估在6.3秒内完成评估使用并行池“local”的高表达式:-通过1 / 1:在0.66秒内完成评估在0.93秒内完成| 7 |接受| 2.9048 | 35.665 | 2.9048 | 2.9048 | 6 |
评估高表达式使用并行池“当地”:通过1对1:在0.46秒完成评估在0.75秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.48秒完成,通过2 4:在1.3秒完成,通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.48秒完成,通过2 4:完成1.2秒-通过3 4:在2.1秒完成,通过4 4:在1.5秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.52秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:在1.3秒内完成-通过3 / 4:在2.1秒内完成-通过4 / 4:在1.7秒内完成评估在6.5秒内完成评估使用并行池“local”的高表达式:-通过1 / 1:在0.76秒内完成评估在1.1秒内完成| 8 |接受| 2.9522 | 35.826 | 2.9048 | 2.9048 | 7 |
评估高表达式使用并行池“当地”:通过1对1:在0.46秒完成评估在0.74秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.2秒完成,通过3 4:在2.1秒完成,通过4 4:在1.7秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.54秒完成,通过2 4:完成1.2秒-通过3 4:在2.1秒完成,通过4 4:在1.7秒完成评估在6.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.2秒完成,通过3 4:在2.1秒完成,通过4 4:在1.7秒完成评估在6.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.5秒完成,通过2 4:在1.2秒内完成-通过3 / 4:在2.1秒内完成-通过4 / 4:在1.6秒内完成评估在6.2秒内完成评估使用并行池“local”来评估高表达式:-通过1 / 1:在0.65秒内完成评估在0.93秒内完成| 9 |接受| 2.9985 | 35.62 | 2.9048 | 2.9048 | 8 |
评估高表达式使用并行池“当地”:通过1对1:在0.5秒完成评估在0.8秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:在1.2秒完成,通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:完成1.3秒-通过3 4:在2.4秒完成,通过4 4:在1.7秒完成评估在6.6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:在1.2秒完成,通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.49秒完成,通过2 4:在1.2秒内完成-通过3 / 4:在2.2秒内完成-通过4 / 4:在1.5秒内完成评估在6.1秒内完成评估使用并行池“local”来评估高表达式:-通过1 / 1:在0.78秒内完成评估在1.1秒内完成| 10 |接受| 3.0185 | 36.083 | 2.9048 | 2.9048 | 10 |
评估高表达式使用并行池“当地”:通过1对1:在0.53秒完成评估在0.9秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.2秒完成,通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:完成1.1秒-通过3 4:完成2秒-通过4 4:在1.5秒完成评估在5.9秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.57秒完成,通过2 4:在1.2秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:-通过1的1:0.72秒完成评估0.99秒完成| 11 |接受| 3.2895 | 27.296 | 2.9048 | 2.9048 | 14 |
评估高表达式使用并行池“当地”:通过1对1:在0.46秒完成评估在0.75秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:在1.2秒完成,通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.2秒内完成-通过3 / 4:在2.2秒内完成-通过4 / 4:在1.6秒内完成评估在6.4秒内完成评估使用并行池“local”来评估高表达式:-通过1 / 1:在0.73秒内完成评估在1秒内完成| 12 |接受| 3.4798 | 19.544 | 2.9048 | 2.9049 | 31 |
评估高表达式使用并行池“当地”:通过1对1:在0.45秒完成评估在0.73秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:完成1.2秒-通过3 4:完成2秒-通过4 4:在1.7秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.2秒完成,通过3 4:完成2秒-通过4 4:在1.5秒完成评估在5.9秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:完成1.1秒-通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.2秒完成,通过3 4:完成2秒-通过4 4:在1.5秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.57秒完成,通过2 4:在1.4秒内完成-通过3 / 4:在2.4秒内完成-通过4 / 4:在1.6秒内完成评估在7秒内完成评估使用并行池“local”来评估高表达式:-通过1 / 1:在0.81秒内完成评估在1.1秒内完成| 13 |接受| 3.2248 | 51.715 | 2.9048 | 2.9048 | 1 |
评估高表达式使用并行池“当地”:通过1对1:在0.73秒完成评估在1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.57秒完成,通过2 4:在1.3秒完成,通过3 4:在2.2秒完成,通过4 4:在1.6秒完成评估在6.5秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.48秒完成,通过2 4:完成1.2秒-通过3 4:在2.2秒完成,通过4 4:在1.6秒完成评估在6.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.1秒完成,通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:完成1.2秒-通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.52秒完成,通过2 4:在1.3秒完成,通过3 4:完成2秒-通过4 4:在2.2秒完成评估在6.8秒完成评估高表达式使用并行池“当地”:-通过1的1:0.66秒完成评估0.92秒完成| 14 |接受| 3.1498 | 44.861 | 2.9048 | 2.9048 | 3 |
评估高表达式使用并行池“当地”:通过1对1:在0.46秒完成评估在0.76秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.52秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.5秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.53秒完成,通过2 4:完成1.3秒-通过3 4:在2.1秒完成,通过4 4:在1.7秒完成评估在6.4秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.57秒完成,通过2 4:在1.3秒完成,通过3 4:在2.3秒完成,通过4 4:在2.1秒完成评估在7.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.51秒完成,通过2 4:在1.3秒内完成-通过3 / 4:在2.2秒内完成-通过4 / 4:在1.6秒内完成评估在6.5秒内完成评估使用并行池“local”的高表达式:-通过1 / 1:在0.68秒内完成评估在0.95秒内完成| 15 |接受| 2.9048 | 36.927 | 2.9048 | 2.9048 | 6 |
评估高表达式使用并行池“当地”:通过1对1:在0.44秒完成评估在0.73秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:在1.1秒完成,通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.44秒完成,通过2 4:完成1.1秒-通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.49秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.7秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.48秒完成,通过2 4:在1.2秒内完成-通过3 / 4:在2.2秒内完成-通过4 / 4:在1.6秒内完成评估在6.3秒内完成评估使用并行池“local”的高表达式:-通过1 / 1:在0.67秒内完成评估在0.94秒内完成| 16 |接受| 2.9048 | 35.562 | 2.9048 | 2.9048 | 6 |
评估高表达式使用并行池“当地”:通过1对1:在0.46秒完成评估在0.75秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在5.9秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:在1.2秒内完成-通过3 / 4:在2秒内完成-通过4 / 4:在1.6秒内完成评估在6秒内完成评估使用并行池“本地”来评估高表达式:-通过1 / 1:在0.66秒内完成评估在0.93秒内完成| 17 |接受| 3.1847 | 18.834 | 2.9048 | 2.9048 | 23 |
评估高表达式使用并行池“当地”:通过1对1:在0.45秒完成评估在0.74秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.5秒完成评估在5.9秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.5秒完成,通过2 4:完成1.2秒-通过3 4:完成2秒-通过4 4:在1.5秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.44秒完成,通过2 4:在1.2秒完成,通过3 4:在2.2秒完成,通过4 4:在1.6秒完成评估在6.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.44秒完成,通过2 4:在1.3秒内完成-通过3 / 4:在2.1秒内完成-通过4 / 4:在1.7秒内完成评估在6.3秒内完成评估使用并行池“local”的高表达式:-通过1 / 1:在0.7秒内完成评估在0.97秒内完成| 18 |接受| 3.1817 | 35.269 | 2.9048 | 2.9048 | 4 |
评估高表达式使用并行池“当地”:通过1对1:在0.45秒完成评估在0.73秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.51秒完成,通过2 4:在1.3秒完成,通过3 4:完成2秒-通过4 4:在1.5秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:-通过1的1:完成在0.66秒评估完成在0.92秒| 19 |错误| NaN | 11.194 | 2.9048 | 2.9048 | 38 |
评估高表达式使用并行池“当地”:通过1对1:在0.47秒完成评估在0.76秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:完成1.2秒-通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在5.9秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.49秒完成,通过2 4:在1.2秒内完成-通过3 / 4:在2.1秒内完成-通过4 / 4:在1.5秒内完成评估在6.1秒内完成评估使用并行池“local”的高表达式:-通过1 / 1:在0.68秒内完成评估在0.95秒内完成| 20 |接受| 3.0628 | 34.846 | 2.9048 | 2.9048 | 12 |
评估高表达式使用并行池“当地”:通过1对1:在0.54秒完成评估在0.86秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.51秒完成,通过2 4:在1.4秒完成,通过3 4:在2.1秒完成,通过4 4:在1.5秒完成评估在6.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.48秒完成,通过2 4:在1.5秒内完成-通过3 / 4:在2.7秒内完成-通过4 / 4:在1.7秒内完成评估在7.1秒内完成评估使用并行池“本地”:-通过1 / 1:在0.65秒内完成评估在0.91秒内完成|======================================================================================| | Iter | Eval |目标:| |目的BestSoFar | BestSoFar | MinLeafSize | | | |结果日志(1 +损失)运行时| | | (estim(观察) .) | | |======================================================================================| | 21日|接受| 3.1847 | 20.6 | 2.9048 | 2.9048 | | 27岁
评估高表达式使用并行池“当地”:通过1对1:在0.46秒完成评估在0.76秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.51秒完成,通过2 4:在1.2秒完成,通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.53秒完成,通过2 4:完成1.2秒-通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.2秒完成,通过3 4:在2.2秒完成,通过4 4:在1.5秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.1秒内完成-通过3 / 4:在2秒内完成-通过4 / 4:在1.7秒内完成评估在6.1秒内完成评估使用并行池“local”的高表达式:-通过1 / 1:在0.68秒内完成评估在0.96秒内完成| 22 |接受| 3.0185 | 35.551 | 2.9048 | 2.9048 | 9 |
评估高表达式使用并行池“当地”:通过1对1:在0.53秒完成评估在0.83秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.1秒完成,通过3 4:在2.1秒完成,通过4 4:在1.5秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:完成1.2秒-通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.52秒完成,通过2 4:在1.3秒完成,通过3 4:在2.1秒完成,通过4 4:在1.5秒完成评估在6.3秒完成评估高表达式使用并行池“当地”:-通过1的1:在0.69秒完成评估在0.96秒完成| 23 |接受| 3.0749 | 27.387 | 2.9048 | 2.9048 | 20 |
评估高表达式使用并行池“当地”:通过1对1:在0.51秒完成评估在0.8秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.2秒完成,通过3 4:在2.2秒完成,通过4 4:在1.6秒完成评估在6.2秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.48秒完成,通过2 4:完成1.2秒-通过3 4:完成2秒-通过4 4:在1.5秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.5秒完成,通过2 4:在1.3秒完成,通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.4秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.1秒内完成-通过4中的3:在2.1秒内完成-通过4中的4:在1.6秒内完成评估在6.1秒内完成评估使用并行池“local”来评估高表达式:-通过1中的1:在0.64秒内完成评估在0.91秒内完成| 24 |接受| 3.0628 | 35.456 | 2.9048 | 2.9048 | 11 |
评估高表达式使用并行池“当地”:通过1对1:在0.46秒完成评估在0.76秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.47秒完成,通过2 4:在1.2秒完成,通过3 4:完成2秒-通过4 4:在1.5秒完成评估在5.9秒完成评估高表达式使用并行池“当地”:-通过1的1:完成耗时0.66秒评估耗时0.93秒| 25 |错误| NaN | 10.961 | 2.9048 | 2.9048 | 34 |
评估高表达式使用并行池“当地”:通过1对1:在0.46秒完成评估在0.76秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.2秒完成,通过3 4:在2.2秒完成,通过4 4:在1.7秒完成评估在6.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.53秒完成,通过2 4:在1.4秒内完成-通过3 / 4:在2.2秒内完成-通过4 / 4:在1.6秒内完成评估在6.5秒内完成评估使用并行池“local”来评估高表达式:-通过1 / 1:在0.75秒内完成评估在1秒内完成| 26 |接受| 3.1847 | 19.822 | 2.9048 | 2.9048 | 25 |
评估高表达式使用并行池“当地”:通过1对1:在0.44秒完成评估在0.74秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.44秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.5秒完成评估在5.9秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.44秒完成,通过2 4:完成1.2秒-通过3 4:在2.1秒完成,通过4 4:在1.6秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.44秒完成,通过2 4:在1.2秒完成,通过3 4:完成2秒-通过4 4:在1.5秒完成评估在6秒完成评估高表达式使用并行池“当地”:-通过1的1:0.66秒完成评估0.92秒完成| 27 |接受| 3.2895 | 26.734 | 2.9048 | 2.9048 | 16 |
评估高表达式使用并行池“当地”:通过1对1:在0.44秒完成评估在0.73秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.44秒完成,通过2 4:在1.1秒完成,通过3 4:在2.1秒完成,通过4 4:在1.5秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:完成1.3秒-通过3 4:在2.2秒完成,通过4 4:在1.7秒完成评估在6.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.48秒完成,通过2 4:在1.1秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6秒完成评估高表达式使用并行池“当地”:-通过1的1:0.65秒完成评估0.92秒完成| 28 |接受| 3.2135 | 27.121 | 2.9048 | 2.9048 | 13 |
评估高表达式使用并行池“当地”:通过1对1:在0.45秒完成评估在0.74秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.46秒完成,通过2 4:在1.2秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.2秒内完成-通过3 / 4:在2秒内完成-通过4 / 4:在1.5秒内完成评估在6秒内完成评估使用并行池“本地”:-通过1 / 1:在0.65秒内完成评估在0.91秒内完成| 29 |接受| 3.1847 | 18.825 | 2.9048 | 2.9048 | 21 |
评估高表达式使用并行池“当地”:通过1对1:在0.46秒完成评估在0.75秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.2秒完成,通过3 4:完成2秒-通过4 4:在1.6秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.45秒完成,通过2 4:在1.2秒内完成-通过3 / 4:在2.1秒内完成-通过4 / 4:在1.6秒内完成评估在6.1秒内完成评估使用并行池“local”来评估高表达式:-通过1 / 1:在0.66秒内完成评估在0.93秒内完成| 30 |接受| 3.1827 | 19.18 | 2.9048 | 2.9122 | 29 |

__________________________________________________________ 优化完成。最大目标达到30个。总函数计算:30总运行时间:921.4644秒。总目标函数评估时间:898.6512最佳观测可行点:MinLeafSize ___________ 6观测目标函数值= 2.9048估计目标函数值= 2.9122函数评估时间= 34.7142最佳估计可行点(根据模型):MinLeafSize ___________ 6估计目标函数值= 2.9122估计函数评估时间= 35.77使用并行池“本地”评估高表达式:-通过1 / 2:完成0.25秒-通过2 2:在0.26秒完成评估在0.8秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.29秒完成,通过2 7:在0.25秒完成,通过3 7:在0.82秒完成,通过4 7:在1.5秒完成,通过5 7:在0.52秒完成,通过6 7:在0.82秒完成,通过7 7:在1.5秒完成评估在6.4秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.28秒完成,通过2 7:在0.25秒完成,通过3 7:在0.76秒完成,通过4 7:在1.4秒完成,通过5 7:在0.48秒完成,通过6 7:在0.77秒完成,通过7 7:在1.4秒完成评估在6.1秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.3秒完成,通过2 7:在0.27秒完成,通过3 7:在0.8秒完成,通过4 7:在1.4秒完成,通过5 7:在0.52秒完成,通过6 7:在0.75秒完成,通过7 7:在1.5秒完成评估在6.3秒完成评估高表达使用并行池“当地”:——通过1 7:在0.3秒完成,通过2 7:在0.25秒完成,通过3 7:在0.78秒完成,通过4 7:在1.4秒完成,通过5 7:在0.51秒完成,通过6 7:在0.94秒完成,通过7 7:在1.7秒完成评估在6.7秒完成评估高表达式使用并行池“当地”:——通过1 7:在0.28秒完成,通过2 7:在0.26秒完成,通过3 7:在0.75秒完成,通过4 7:在1.4秒完成,通过5 7:在0.49秒完成,通过6 7:在0.78秒完成,通过7 7:在1.4秒完成评估在6.1秒完成
Mdl = classreg.learning.regr.CompactRegressionTree ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none'属性,方法
FitInfo =结构,不带字段。
HyperparameterOptimizationResults = BayesianOptimization with properties: ObjectiveFcn: @createObjFcn/tallObjFcn variabledescription: [3×1 optimizableVariable] Options: [1×1 struct] MinObjective: 2.9048 XAtMinObjective: [1×1 table] minestimatedobjobjective: 2.9122 xatminestimatedobjobjective: [1×1 table] numobjectiveevalues: 30 TotalElapsedTime: 921.4644 NextPoint: [1×1 table] XTrace: [30×1 table] ObjectiveTrace: [30×1 double] ConstraintsTrace: [] UserDataTrace:{30×1 cell} ObjectiveEvaluationTimeTrace: [30×1 double] IterationTimeTrace: [30×1 double] ErrorTrace: [30×1 double]可行性跟踪:[30×1 logical]可行性概率跟踪:[30×1 double] IndexOfMinimumTrace: [30×1 double] objectivminimumtrace: [30×1 double] estimatedobjectivminimumtrace: [30×1 double]

输入参数

全部折叠

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

如果资源描述包含响应变量,您希望在中使用所有剩余变量资源描述作为预测器,然后通过使用指定响应变量ResponseVarName

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

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

数据类型:表格

响应变量名,指定为中的变量名资源描述.响应变量必须是数值向量。

您必须指定ResponseVarName作为字符向量或字符串标量。例如,如果资源描述存储响应变量Y作为资源描述。Y,然后指定为“Y”.否则,软件处理的所有列资源描述,包括Y,作为训练模型时的预测因子。

数据类型:字符|字符串

响应变量和预测变量子集的解释模型,在表单中指定为字符向量或字符串标量“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.makeValidName(Tbl.Properties.VariableNames);

数据类型:字符|字符串

响应数据,指定为具有相同行数的数字列向量X.每一项Y的对应行中的数据是否响应X

软件考虑Y丢失的值。fitrtree不使用缺少值的观察Y合身。

数据类型:|

预测器数据,指定为数值矩阵。的每一列X表示一个变量,每一行表示一个观察结果。

fitrtree认为X作为缺失值。fitrtree不使用所有缺失值的观察X合身。fitrtree使用一些缺少值的观测值X在这些观察值有效的变量上找到分裂。

数据类型:|

名称-值对参数

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

例子:“CrossVal”,“上”、“MinParentSize”,30岁指定交叉验证的回归树,每个分支节点至少有30个观察值。

请注意

方法时,不能使用任何交叉验证名称-值对参数“OptimizeHyperparameters”名称-值对参数。您可以修改交叉验证“OptimizeHyperparameters”只有使用“HyperparameterOptimizationOptions”名称-值对参数。

模型参数

全部折叠

类别预测符列表,指定为逗号分隔的对,由“CategoricalPredictors”这个表中的一个值。

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

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

例子:“CategoricalPredictors”、“所有”

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

最大树深度,指定为逗号分隔的对,由“MaxDepth”一个正整数。为此参数指定一个值,以返回具有更少级别的树,并且需要更少的高数组遍历来计算。的算法fitrtree对数据进行一次遍历,对每个树级别进行一次额外的遍历。默认情况下,该函数不设置最大树深度。

请注意

此选项仅在使用fitrtree在高数组上。看到高大的数组获取更多信息。

叶合并标志,指定为逗号分隔的对,由“MergeLeaves”而且“上”“关闭”

如果MergeLeaves“上”,然后fitrtree

  • 合并源自同一父节点的叶子,并生成大于或等于与父节点关联的风险值之和

  • 估计修剪过的子树的最佳序列,但不修剪回归树

否则,fitrtree不合并叶。

例子:“MergeLeaves”,“关闭”

分支节点观察的最小数目,指定为由逗号分隔的对组成“MinParentSize”一个正整数值。树中的每个分支节点至少有MinParentSize观察。如果两者都提供MinParentSize而且MinLeafSizefitrtree使用给出较大叶子的设置:MinParentSize = max(MinParentSize,2*MinLeafSize)

例子:“MinParentSize”,8

数据类型:|

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

  • 如果“NumBins”值为空(默认值),则软件不存储任何预测器。

  • 如果您指定“NumBins”值为正整数标量,然后软件将每个数值预测器放入指定数量的等概率容器中,然后在容器索引上生长树,而不是原始数据。

    • 如果“NumBins”值超过数值(u)的唯一值的预测,那么fitrtree将预测器分类为u箱里。

    • fitrtree不包含分类预测符。

当你使用一个大的训练数据集时,这个分箱选项会加快训练速度,但会导致潜在的准确性下降。你可以试试“NumBins”,50岁先改,再改“NumBins”值取决于准确性和训练速度。

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

例子:“NumBins”,50岁

数据类型:|

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

  • 如果你提供X而且Y,那么你就可以使用了“PredictorNames”给出预测变量X的名字。

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

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

  • 如果你提供资源描述,那么你就可以使用了“PredictorNames”选择在训练中使用哪些预测变量。也就是说,fitrtree中仅使用预测变量PredictorNames以及训练中的响应变量。

    • PredictorNames的子集Tbl.Properties.VariableNames并且不能包括响应变量的名称。

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

    • 一个好的实践是使用其中一种来指定训练的预测器“PredictorNames”公式只有。

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

数据类型:字符串|细胞

用于在每个节点上选择最佳分割预测器的算法,指定为由逗号分隔的对组成“PredictorSelection”和这个表中的一个值。

价值 描述
“allsplits”

标准CART -选择分割预测器,使所有预测器的所有可能分割的分割准则增益最大化[1]

“弯曲” 弯曲测试-选择最小的分裂预测器p-每个预测器与响应之间独立性的卡方检验的值[2].训练速度与标准CART相似。
“interaction-curvature” 交互测试-选择分裂预测器使p每个预测器与响应之间的独立性卡方检验(即进行曲率检验)的-值,从而使p-每对预测因子与响应之间独立性的卡方检验的值[2].训练速度可能比标准CART慢。

“弯曲”而且“interaction-curvature”,如果所有测试都成功p-values大于0.05,则fitrtree停止分裂节点。

提示

  • 标准CART倾向于选择包含许多不同值的分割预测因子,例如连续变量,而不是包含很少不同值的预测因子,例如分类变量[3].考虑指定曲率或交互测试,如果以下任何一个是正确的:

    • 如果有些预测器具有相对较少的不同值,例如,如果预测器数据集是异构的。

    • 如果你的目标是预测因子重要性的分析。有关预测器重要性估计的更多信息,请参见predictorImportance而且特征选择简介

  • 使用标准CART生长的树木对预测变量相互作用不敏感。此外,与交互测试的应用相比,在存在许多不相关的预测因子时,这样的树不太可能识别重要变量。因此,为了解释预测器的相互作用,并在存在许多不相关变量时确定重要变量,请指定相互作用测试。

  • 的值不影响预测速度“PredictorSelection”

有关如何fitrtree选择拆分预测器,参见节点分裂规则而且选择分裂预测器选择技术

例子:“PredictorSelection”、“弯曲”

标记来估计修剪过的子树的最佳序列,指定为逗号分隔的对,由“删除”而且“上”“关闭”

如果修剪“上”,然后fitrtree生长回归树并估计修剪过的子树的最佳序列,但不修剪回归树。否则,fitrtree生长回归树,而不估计修剪子树的最佳序列。

要修剪已训练的回归树,请将回归树传递给修剪

例子:“删除”,“关闭”

剪枝条件,指定为逗号分隔的对,由“PruneCriterion”而且mse的

每个节点的二次容错,指定为逗号分隔的对,由“QuadraticErrorTolerance”一个正标量。当每个节点的加权均方误差下降到以下时,函数停止分裂节点QuadraticErrorTolerance *ε,在那里ε加权的均方误差是全部的吗n在增长决策树之前计算的响应。

ε 1 n w y y ¯ 2

w是观察的重量吗,假设所有观测值的权重之和为1 ( 1 n w 1 ),

y ¯ 1 n w y

是所有回答的加权平均值。

有关节点分裂的详细信息,请参见节点分裂规则

例子:“QuadraticErrorTolerance”,1的军医

标志,以强制重复运行训练模型的可再现性,指定为逗号分隔的对,由“复制”,要么真正的

如果“NumVariablesToSample”不是“所有”,然后软件为每次分割随机选择预测因子。要重新生成随机选择,必须指定“重现”,真的并对随机数发生器的种子进行设置rng.注意设置“复制”真正的会减慢训练速度。

例子:“重现”,真的

数据类型:逻辑

响应变量名,指定为逗号分隔的对,由“ResponseName”和字符向量或字符串标量。

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

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

例子:“ResponseName”、“响应”

数据类型:字符|字符串

响应转换,指定为由逗号分隔的对组成“ResponseTransform”,要么“没有”或者一个函数句柄。默认为“没有”,这意味着@ (y) y,或者没有变换。对于MATLAB函数或您定义的函数,请使用其函数句柄。函数句柄必须接受一个向量(原始响应值)并返回一个相同大小的向量(转换后的响应值)。

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

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

拆分条件,指定为逗号分隔的对,由“SplitCriterion”而且MSE的,表示均方误差。

例子:“SplitCriterion”、“MSE的

代理决策分割标志,指定为由逗号分隔的对组成“代孕”而且“上”“关闭”“所有”,或正整数。

  • “上”fitrtree在每个分支节点上最多查找10个代理分割。

  • 当设置为正整数时,fitrtree在每个分支节点上最多查找指定数量的代理分割。

  • 当设置为“所有”fitrtree查找每个分支节点上的所有代理分割。的“所有”设置会占用大量的时间和内存。

使用代理分割来提高对缺失值数据的预测准确性。该设置还允许您计算预测因子之间预测关联的度量。

例子:“代孕”,“上”

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

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

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

fitrtree将每个类中的权重归一化,使其加起来为1。

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

交叉验证

全部折叠

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

如果“上”fitrtree以10次折叠的方式生长交叉验证的决策树。方法之一可以覆盖此交叉验证设置“KFold”“坚持”“Leaveout”,或“CVPartition”名称-值对参数。您只能使用以下四个选项之一(“KFold”“坚持”“Leaveout”,或“CVPartition”)在创建交叉验证树时。

另外,旨在稍后使用crossval方法。

例子:“CrossVal”,“上”

交叉验证树的分区,指定为逗号分隔的对,由“CVPartition”和使用cvpartition

如果你使用“CVPartition”,你不能使用任何“KFold”“坚持”,或“Leaveout”名称-值对参数。

用于拒绝验证的数据的百分比,指定为逗号分隔的对,由“坚持”和值域内的标量值[0, 1].拒绝验证测试数据的指定部分,并使用其余数据进行训练。

如果你使用“坚持”,你不能使用任何“CVPartition”“KFold”,或“Leaveout”名称-值对参数。

例子:“坚持”,0.1

数据类型:|

交叉验证树中使用的折叠数,指定为逗号分隔的对,由“KFold”一个大于1的正整数。

如果你使用“KFold”,你不能使用任何“CVPartition”“坚持”,或“Leaveout”名称-值对参数。

例子:“KFold”,8

数据类型:|

省略一个交叉验证标志,指定为逗号分隔的对,由“Leaveout”,要么“上”的假.通过设置为,使用省略交叉验证“上”

如果你使用“Leaveout”,你不能使用任何“CVPartition”“坚持”,或“KFold”名称-值对参数。

例子:“Leaveout”,“上”

Hyperparameters

全部折叠

决策分割(或分支节点)的最大数目,指定为由逗号分隔的对组成“MaxNumSplits”一个正整数。fitrtree分裂MaxNumSplits或者分支节点更少。有关拆分行为的详细信息,请参见树深控制

例子:“MaxNumSplits”,5

数据类型:|

最小叶节点观测数,由逗号分隔的对组成“MinLeafSize”一个正整数值。每片叶子至少有MinLeafSize每块树叶的观察结果。如果两者都提供MinParentSize而且MinLeafSizefitrtree使用给出较大叶子的设置:MinParentSize = max(MinParentSize,2*MinLeafSize)

例子:“MinLeafSize”,3

数据类型:|

为每次分割随机选择的预测器的数目,指定为由逗号分隔的对组成的“NumVariablesToSample”一个正整数值。或者,您可以指定“所有”使用所有可用的预测器。

如果训练数据包含许多预测因子,并且您想分析预测因子的重要性,那么请指定“NumVariablesToSample”作为“所有”.否则,软件可能不会选择某些预测因子,从而低估了它们的重要性。

要重新生成随机选择,必须通过使用设置随机数生成器的种子rng并指定“重现”,真的

例子:“NumVariablesToSample”,3

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

Hyperparameter优化

全部折叠

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

  • “没有”-不要优化。

  • “汽车”——使用{' MinLeafSize '}

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

  • 符合条件的参数名的字符串数组或单元格数组。

  • 向量的optimizableVariable对象的输出hyperparameters

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

请注意

“OptimizeHyperparameters”值覆盖使用其他名称-值对参数设置的任何值。例如,设置“OptimizeHyperparameters”“汽车”导致“汽车”要应用的值。

符合条件的参数fitrtree是:

  • MaxNumSplits- - - - - -fitrtree在整数之间搜索,默认情况下在范围内按对数缩放NumObservations-1[1,马克斯(2))

  • MinLeafSize- - - - - -fitrtree在整数之间搜索,默认情况下在范围内按对数缩放[1,马克斯(2楼(NumObservations / 2)))

  • NumVariablesToSample- - - - - -fitrtree不对这个超参数进行优化。如果你通过了NumVariablesToSample作为参数名,fitrtree简单地使用全部数量的预测器。然而,fitrensemble对这个超参数进行优化。

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

负载carsmallParams =超参数(“fitrtree”(功率、重量),MPG);参数(1)。Range = [1,30];

通过参数个数作为价值OptimizeHyperparameters

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

有关示例,请参见优化回归树

例子:“汽车”

用于优化的选项,指定为逗号分隔的对,由“HyperparameterOptimizationOptions”还有一个结构。的效果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”,然后ShowPlots还绘制了目标函数对参数的模型。 真正的
SaveIntermediateResults 时是否保存结果的逻辑值优化器“bayesopt”.如果真正的,此字段将覆盖名为“BayesoptResults”在每次迭代中。变量是aBayesianOptimization对象。
详细的

显示到命令行。

  • 0-无迭代显示

  • 1-迭代显示

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

详细信息请参见bayesopt详细的名称-值对参数。

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

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

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

使用以下三个字段名中的一个。
CVPartition 一个cvpartition对象创建的cvpartition “Kfold”,5如果您没有指定任何交叉验证字段
坚持 范围内的标量(0,1)表示抵抗分数。
Kfold 大于1的整数。

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

数据类型:结构体

输出参数

全部折叠

回归树,作为回归树对象返回。使用“Crossval”“KFold”“坚持”“Leaveout”,或“CVPartition”Options的结果是一个类树RegressionPartitionedModel.不能使用分区树进行预测,因此这种树没有预测方法。

否则,是一流的RegressionTree,您可以使用预测进行预测的方法。

更多关于

全部折叠

弯曲测试

弯曲测试是一种统计检验,评估两个变量不相关的零假设。

预测变量之间的曲率检验x而且y使用此过程进行。

  1. 如果x是连续的,然后把它分成四分位。创建一个标称变量,根据观察结果占据分区的哪个部分进行分类。如果缺少值,则为它们创建一个额外的bin。

  2. 对于分区预测器中的每个级别j= 1…J和class在响应中k= 1,…,K,计算课堂观察的加权比例k

    π j k 1 n y k w

    w是观察的重量吗 w 1 该指标是否有效,以及n是样本容量。如果所有的观测值都有相同的权重,那么 π j k n j k n ,在那里njk观察的数量是否为水平j课堂上的预测者k

  3. 计算测试统计量

    t n k 1 K j 1 J π j k π j + π + k 2 π j + π + k

    π j + k π j k ,即在水平上观察预测器的边际概率j π + k j π j k ,即观察类的边际概率k.如果n够大吗t分布为χ2(K- 1) (J- 1)自由度。

  4. 如果p-value为检验值小于0.05,则拒绝原假设,即两者之间没有关联x而且y

在确定每个节点上的最佳分割预测器时,标准CART算法倾向于选择具有多个级别的连续预测器。有时,这样的选择可能是虚假的,还可能掩盖具有较少级别的更重要的预测符,例如分类预测符。

曲率测试可以代替标准CART来确定每个节点上的最佳分割预测器。在这种情况下,最好的分裂预测变量是最小化显著性的变量p-每个预测器与响应变量之间的曲率检验值(小于0.05)。这样的选择对个别预测因子的水平数量具有鲁棒性。

有关曲率测试如何应用于生长回归树的详细信息,请参见节点分裂规则而且[3]

交互测试

交互测试是一种统计检验,用于评估原假设,即一对预测变量和响应变量之间没有相互作用。

相互作用检验评估预测变量之间的关联x1而且x2关于y使用此过程进行。

  1. 如果x1x2是连续的,然后将该变量划分为四分位。创建一个标称变量,根据观察结果占据分区的哪个部分进行分类。如果缺少值,则为它们创建一个额外的bin。

  2. 创建标称变量zJJ1J2将一个索引分配给观察的级别根据哪个水平x1而且x2它属于。删除任何级别的z这与任何观测结果都不相符。

  3. 进行一次弯曲测试之间的z而且y

在生长决策树时,如果预测因子对之间存在重要的交互作用,但数据中还存在许多其他不太重要的预测因子,那么标准CART往往会错过重要的交互作用。然而,对预测器选择进行曲率和相互作用测试可以改善对重要相互作用的检测,从而产生更准确的决策树。

有关交互测试如何应用于生长决策树的详细信息,请参见弯曲测试节点分裂规则而且[2]

联想的预测测量

关联的预测测量指示拆分观察结果的决策规则之间的相似性的值。在与最优分割(通过生长树发现)相比的所有可能的决策分割中,最好的代理决策分裂产生关联的最大预测度量。第二好的代理分裂具有第二大的关联预测措施。

假设xj而且xk都是预测变量j而且k,以及jk.在节点t,预测测度之间的关联最优分割xj<u代理分裂xk<v

λ j k 最小值 P l P R 1 P l j l k P R j R k 最小值 P l P R

  • Pl节点中观测值的比例是多少t,以致于xj<u.下标l表示节点的左子节点t

  • PR节点中观测值的比例是多少t,以致于xju.下标R表示节点的右子节点t

  • P l j l k 节点上观测值的比例是多少t,以致于xj<u而且xk<v

  • P R j R k 节点上观测值的比例是多少t,以致于xju而且xkv

  • 缺少值的观测值xjxk不要参与比例计算。

λjk是(-∞,1]中的值。如果λjk> 0,然后xk<v代理拆分值得吗xj<u

代理决策分裂

一个代理决策分裂是决策树中给定节点上的最优决策分割的替代方案。通过生长树来找到最佳分割;代理分割使用相似或相关的预测变量和分割准则。

当某个观测值的最佳分割预测器的值缺失时,使用最佳代理预测器将该观测值发送到左或右子节点。当观测结果的最佳代理分割预测器的值也缺失时,使用次优代理预测器将观测结果发送到左或右子节点,依此类推。候选分割按它们的降序排序关联的预测测量

提示

  • 默认情况下,修剪“上”.然而,这个规范并没有修剪回归树。要修剪已训练的回归树,请将回归树传递给修剪

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

算法

全部折叠

节点分裂规则

fitrtree使用这些进程来确定如何分割节点t

  • 对于标准CART(即如果PredictorSelection“allpairs”)和所有预测因子x= 1,…,p

    1. fitrtree计算节点响应的加权均方误差(MSE)t使用

      ε t j T w j y j y ¯ t 2

      wj是观察的重量吗j,T所有观测指标的集合在节点上吗t.如果您没有指定权重,然后wj= 1 /n,在那里n是样本容量。

    2. fitrtree估计观测值在节点中的概率t使用

      P T j T w j

    3. fitrtree排序x按升序排列。排序预测器的每个元素都是一个分裂候选或切割点。fitrtree记录与集合中缺失值对应的所有索引TU,即不可分割集。

    4. fitrtree确定拆分节点的最佳方式t使用x通过最大限度地减少MSE (Δ)对所有分裂的候选人。也就是说,对于所有分裂的候选人x

      1. fitrtree在节点中拆分观察结果t分为左右子节点(tl而且tR分别)。

      2. fitrtree计算Δ.假设对于一个特定的分裂候选,tl而且tR在集合中包含观测指标Tl而且TR,分别。

        • 如果x不包含任何缺失值,则当前分裂候选的MSE减少为

          Δ P T ε t P T l ε t l P T R ε t R

        • 如果x包含缺失值,则假设观测值随机缺失,则MSE减小为

          Δ U P T T U ε t P T l ε t l P T R ε t R

          T- - - - - -TU所有观测指标的集合在节点上吗t这些都没有丢失。

        • 如果你使用代理决策分裂,那么:

          1. fitrtree计算关联的预测测量在决策分裂之间xj<u以及所有可能的决策分裂xk<vjk

          2. fitrtree根据可能的备选决策分割与最优分割的关联预测度量,按降序排序。代理分裂是产生最大度量的决策分裂。

          3. fitrtree为缺少值的观测值确定子节点分配x使用代理分裂。如果代理预测器还包含一个缺失值,则fitrtree使用第二大度量的决策分割,依此类推,直到没有其他替代度量。这是可能的fitrtree在节点上拆分两个不同的观测值t使用两个不同的代理分割。例如,假设预测器x1而且x2预测者的最佳和次佳替代品分别是什么x在节点上,结果为结果{1,2}t.如果观察的预测x缺失(即,x心肌梗死),但是x1不是失踪了吗x1是观察的替代预测因子吗x心肌梗死.如果观察x+ 1),而且x+ 1),1都不见了,但是x+ 1), 2不是失踪了吗x2是观察的替代预测因子吗+ 1。

          4. fitrtree使用适当的MSE缩减公式。也就是说,如果fitrtree未能分配节点中所有缺失的观察值t,则MSE降阶为ΔU.否则,fitrtree使用Δ为MSE减少。

      3. fitrtree选择MSE降幅最大的候选。

    fitrtree在最大限度地减少MSE的切点上分割预测变量。

  • 对于曲率检验(即,如果PredictorSelection“弯曲”):

    1. fitrtree计算残差 r t y t y ¯ t 对于node中的所有观测t y ¯ t 1 w w y t ,为节点响应的加权平均值t.权重是观察权重权重

    2. fitrtree根据相应残差的符号将观测值分配到两个箱子中的一个。让zt是一个标称变量,它包含node中观察值的bin赋值t

    3. fitrtree进行弯曲测试在每个预测器之间zt.对于回归树,K= 2。

      • 如果所有p-values至少为0.05,则fitrtree不分裂节点t

      • 如果有一个最小值p值,然后fitrtree选择相应的预测器进行节点拆分t

      • 如果不止一个p-value由于下溢为零,则fitrtree将标准CART应用于相应的预测器,以选择分割预测器。

    4. 如果fitrtree选择一个分割预测器,然后使用标准CART来选择切割点(参见标准CART过程中的步骤4)。

  • 对于交互测试(即如果PredictorSelection“interaction-curvature”):

    1. 对于节点中的观测tfitrtree进行弯曲测试在每个预测器和反应之间交互测试在每对预测器和响应之间。

      • 如果所有p-values至少为0.05,则fitrtree不分裂节点t

      • 如果有一个最小值p-value,它是曲率测试的结果,则fitrtree选择相应的预测器进行节点拆分t

      • 如果有一个最小值p-value并且它是交互测试的结果,那么fitrtree在相应的预测器对上使用标准CART选择分裂预测器。

      • 如果不止一个p-value由于下溢为零,则fitrtree将标准CART应用于相应的预测器,以选择分割预测器。

    2. 如果fitrtree选择一个分割预测器,然后使用标准CART来选择切割点(参见标准CART过程中的步骤4)。

树深控制

  • 如果MergeLeaves“上”而且PruneCriterionmse的(这是这些名称-值对参数的默认值),然后软件只对叶子应用剪枝,并使用MSE。此规范相当于合并来自同一父节点的叶节点,其MSE最多为其两个叶节点的MSE之和。

  • 以适应MaxNumSplitsfitrtree拆分当前中的所有节点,然后统计分支节点数。层是与根节点等距离的节点的集合。分支节点数量超过MaxNumSplitsfitrtree遵循以下步骤:

    1. 确定当前层中有多少分支节点必须被取消拆分,以使最多有分支节点MaxNumSplits分支节点。

    2. 根据分支节点的杂质增益对其进行排序。

    3. 分解最不成功的分支的数量。

    4. 返回到目前为止生长的决策树。

    这个过程产生最大程度的平衡树。

  • 软件一层一层地拆分分支节点,直到至少发生以下事件之一:

    • MaxNumSplits分支节点。

    • 建议的分割将导致至少一个分支节点中的观察数少于MinParentSize

    • 建议的分割将导致至少一个叶节点中的观察数少于MinLeafSize

    • 该算法无法在一个层内找到一个好的分割(即剪枝准则(见PruneCriterion),并不能改善一个层中所有的分割)。一个特殊的情况是当所有节点都是纯节点(即,节点中的所有观测值都具有相同的类)。

    • 对于价值观“弯曲”“interaction-curvature”PredictorSelection,所有测试均屈服p-值大于0.05。

    MaxNumSplits而且MinLeafSize不影响按默认值拆分。因此,如果你设置“MaxNumSplits”的值可能会导致分裂停止MinParentSize之前,MaxNumSplits将发生。

并行化

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

参考文献

布莱曼,L.弗里德曼,R.奥尔申和C.斯通。分类与回归树.佛罗里达州博卡拉顿:CRC出版社,1984年。

[2] Loh, W.Y.,“无偏变量选择和交互检测的回归树”。Statistica中央研究院, Vol. 12, 2002, pp. 361-386。

[3]罗永安、施永信。分类树的分割选择方法Statistica中央研究院, Vol. 7, 1997, pp. 815-840。

扩展功能

在R2014a中引入