主要内容gydF4y2Ba

fitcgamgydF4y2Ba

拟合广义可加性模型(GAM)进行二元分类gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

MdlgydF4y2Ba= fitcgam (gydF4y2Ba资源描述gydF4y2Ba,gydF4y2BaResponseVarNamegydF4y2Ba)gydF4y2Ba返回一个gydF4y2Ba广义加性模型gydF4y2BaMdlgydF4y2Ba使用表中包含的示例数据进行训练gydF4y2Ba资源描述gydF4y2Ba.输入参数gydF4y2BaResponseVarNamegydF4y2Ba变量名在吗gydF4y2Ba资源描述gydF4y2Ba它包含用于二进制分类的类标签。gydF4y2Ba

例子gydF4y2Ba

MdlgydF4y2Ba= fitcgam (gydF4y2Ba资源描述gydF4y2Ba,gydF4y2Ba公式gydF4y2Ba)gydF4y2Ba使用模型规范参数gydF4y2Ba公式gydF4y2Ba中指定类标签和预测变量gydF4y2Ba资源描述gydF4y2Ba.可以指定预测器变量的子集和预测器变量的交互项gydF4y2Ba公式gydF4y2Ba.gydF4y2Ba

MdlgydF4y2Ba= fitcgam (gydF4y2Ba资源描述gydF4y2Ba,gydF4y2BaYgydF4y2Ba)gydF4y2Ba使用表中的预测变量gydF4y2Ba资源描述gydF4y2Ba向量中的类标签gydF4y2BaYgydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

MdlgydF4y2Ba= fitcgam (gydF4y2BaXgydF4y2Ba,gydF4y2BaYgydF4y2Ba)gydF4y2Ba使用矩阵中的预测器gydF4y2BaXgydF4y2Ba向量中的类标签gydF4y2BaYgydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

MdlgydF4y2Ba= fitcgam (gydF4y2Ba___gydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba除前面语法中的任何输入参数组合外,还使用一个或多个名称-值参数指定选项。例如,gydF4y2Ba“互动”,5gydF4y2Ba指定在模型中包含五个交互项。属性指定交互术语列表gydF4y2Ba的相互作用gydF4y2Ba名称-值参数。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

训练一个单变量广义可加性模型,其中包含预测变量的线性项。方法解释指定数据实例的预测gydF4y2BaplotLocalEffectsgydF4y2Ba函数。gydF4y2Ba

加载gydF4y2Ba电离层gydF4y2Ba数据集。该数据集有34个预测器和351个雷达返回的二进制响应,要么是坏的(gydF4y2Ba“b”gydF4y2Ba)或好(gydF4y2Ba‘g’gydF4y2Ba).gydF4y2Ba

负载gydF4y2Ba电离层gydF4y2Ba

训练一个单变量GAM,识别雷达返回是否不良(gydF4y2Ba“b”gydF4y2Ba)或好(gydF4y2Ba‘g’gydF4y2Ba).gydF4y2Ba

Mdl = fitccam (X,Y)gydF4y2Ba
Mdl = ClassificationGAM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'logit'拦截:2.2715 NumObservations: 351属性,方法gydF4y2Ba

MdlgydF4y2Ba是一个gydF4y2BaClassificationGAMgydF4y2Ba模型对象。模型显示显示模型属性的部分列表。若要查看完整的属性列表,请双击变量名gydF4y2BaMdlgydF4y2Ba在工作区中。打开变量编辑器gydF4y2BaMdlgydF4y2Ba.或者,您可以使用点表示法在命令窗口中显示属性。例如,显示的类顺序gydF4y2BaMdlgydF4y2Ba.gydF4y2Ba

classOrder = Mdl。一会gydF4y2Ba
classOrder =gydF4y2Ba2 x1细胞gydF4y2Ba{b} {' g '}gydF4y2Ba

对第一次观察到的训练数据进行分类,并绘制训练数据中各项的局部效应gydF4y2BaMdlgydF4y2Ba关于预测。gydF4y2Ba

label =预测(Mdl,X(1,:))gydF4y2Ba
标签=gydF4y2Ba1x1单元阵列gydF4y2Ba{' g '}gydF4y2Ba
: plotLocalEffects (Mdl X (1))gydF4y2Ba

图中包含一个轴对象。标题为Local Effects Plot的axes对象包含一个类型为bar的对象。gydF4y2Ba

的gydF4y2Ba预测gydF4y2Ba函数对第一个观测值进行分类gydF4y2BaX (1:)gydF4y2Ba作为gydF4y2Ba‘g’gydF4y2Ba.的gydF4y2BaplotLocalEffectsgydF4y2Ba函数创建了一个水平柱状图,显示了10个最重要的术语对预测的局部影响。每个局部效应值表示每个术语对分类分数的贡献gydF4y2Ba‘g’gydF4y2Ba,即该分类的后验概率的logitgydF4y2Ba‘g’gydF4y2Ba为了观察。gydF4y2Ba

用三种不同的方式训练一个包含预测因子线性和交互项的广义加法模型:gydF4y2Ba

  • 属性指定交互术语gydF4y2Ba公式gydF4y2Ba输入参数。gydF4y2Ba

  • 指定gydF4y2Ba“互动”gydF4y2Ba名称-值参数。gydF4y2Ba

  • 方法先用线性项构建模型,并向模型中添加交互项gydF4y2BaaddInteractionsgydF4y2Ba函数。gydF4y2Ba

加载费雪的虹膜数据集。创建一个包含versicolor和virginica观察结果的表。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaInds = strcmp(物种,gydF4y2Ba“多色的”gydF4y2Ba) | strcmp(物种,gydF4y2Ba“virginica”gydF4y2Ba);TBL = array2table(meas(inds,:)),gydF4y2Ba“VariableNames”gydF4y2Ba,[gydF4y2Ba“x1”gydF4y2Ba,gydF4y2Ba“x2”gydF4y2Ba,gydF4y2Ba“x3”gydF4y2Ba,gydF4y2Ba“x4”gydF4y2Ba]);资源描述。Y=年代pec我e年代(我nds,:);

指定gydF4y2Ba公式gydF4y2Ba

训练包含四个线性项的GAM (gydF4y2Bax1gydF4y2Ba,gydF4y2Bax2gydF4y2Ba,gydF4y2Bax3gydF4y2Ba,gydF4y2Bax4gydF4y2Ba)和两个交互项(gydF4y2Bax1 * x2gydF4y2Ba而且gydF4y2Bax2 * x3gydF4y2Ba).使用表单中的公式指定术语gydF4y2Ba“Y ~项”gydF4y2Ba.gydF4y2Ba

Mdl1 = fitccam (tbl,gydF4y2Ba'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3'gydF4y2Ba);gydF4y2Ba

该函数按照重要性的顺序将交互项添加到模型中。您可以使用gydF4y2Ba的相互作用gydF4y2Ba属性检查模型中的交互项及其顺序gydF4y2BafitcgamgydF4y2Ba将它们添加到模型中。显示gydF4y2Ba的相互作用gydF4y2Ba财产。gydF4y2Ba

Mdl1。的相互作用gydF4y2Ba
ans =gydF4y2Ba2×2gydF4y2Ba2 3 1 2gydF4y2Ba

每行gydF4y2Ba的相互作用gydF4y2Ba表示一个交互项,并包含该交互项的预测变量的列索引。gydF4y2Ba

指定gydF4y2Ba“互动”gydF4y2Ba

传递培训数据(gydF4y2Ba资源描述gydF4y2Ba)和响应变量的名称gydF4y2Ba资源描述gydF4y2Ba来gydF4y2BafitcgamgydF4y2Ba,使函数包含所有其他变量的线性项作为预测因子。指定gydF4y2Ba“互动”gydF4y2Ba使用逻辑矩阵来包含两个交互项的名称-值参数,gydF4y2Bax1 * x2gydF4y2Ba而且gydF4y2Bax2 * x3gydF4y2Ba.gydF4y2Ba

Mdl2 = fitccam (tbl,gydF4y2Ba“Y”gydF4y2Ba,gydF4y2Ba“互动”gydF4y2Ba,逻辑([1 1 0 0;0 1 1 0]));Mdl2。的相互作用gydF4y2Ba
ans =gydF4y2Ba2×2gydF4y2Ba2 3 1 2gydF4y2Ba

你也可以指定gydF4y2Ba“互动”gydF4y2Ba作为相互作用项的数量或gydF4y2Ba“所有”gydF4y2Ba包括所有可用的交互术语。在指定的交互条件中,gydF4y2BafitcgamgydF4y2Ba识别那些gydF4y2BapgydF4y2Ba-values不大于gydF4y2Ba“MaxPValue”gydF4y2Ba值并将它们添加到模型中。默认的gydF4y2Ba“MaxPValue”gydF4y2Ba为1,以便函数将所有指定的交互项添加到模型中。gydF4y2Ba

指定gydF4y2Ba“互动”、“所有”gydF4y2Ba并设置gydF4y2Ba“MaxPValue”gydF4y2Ba名称-值参数为0.01。gydF4y2Ba

(tbl;gydF4y2Ba“Y”gydF4y2Ba,gydF4y2Ba“互动”gydF4y2Ba,gydF4y2Ba“所有”gydF4y2Ba,gydF4y2Ba“MaxPValue”gydF4y2Ba, 0.01);Mdl3。的相互作用gydF4y2Ba
ans =gydF4y2Ba5×2gydF4y2Ba3 4 2 4 1 4 2 3 1 3gydF4y2Ba

Mdl3gydF4y2Ba包括六对可用交互术语中的五对。gydF4y2Ba

使用gydF4y2BaaddInteractionsgydF4y2Ba函数gydF4y2Ba

训练一个包含预测因子线性项的单变量GAM,然后使用gydF4y2BaaddInteractionsgydF4y2Ba函数。指定的第二个输入参数gydF4y2BaaddInteractionsgydF4y2Ba以同样的方式指定gydF4y2Ba“互动”gydF4y2Ba的名称-值参数gydF4y2BafitcgamgydF4y2Ba.您可以使用逻辑矩阵指定交互术语的列表、交互术语的数量或gydF4y2Ba“所有”gydF4y2Ba.gydF4y2Ba

指定交互项的数量为5,将5个最重要的交互项添加到训练的模型中。gydF4y2Ba

Mdl4 = fitccam (tbl,gydF4y2Ba“Y”gydF4y2Ba);UpdatedMdl4 = addInteractions(Mdl4,5);UpdatedMdl4。的相互作用gydF4y2Ba
ans =gydF4y2Ba5×2gydF4y2Ba3 4 2 4 1 4 2 3 1 3gydF4y2Ba

Mdl4gydF4y2Ba是单变量GAM,和gydF4y2BaUpdatedMdl4gydF4y2Ba是一个更新的GAM,包含了所有的条款gydF4y2BaMdl4gydF4y2Ba还有另外五个相互作用项。gydF4y2Ba

使用10次折叠训练交叉验证的GAM,这是默认的交叉验证选项gydF4y2BafitcgamgydF4y2Ba.然后,用gydF4y2BakfoldPredictgydF4y2Ba使用在训练折叠观察上训练的模型来预测验证折叠观察的类别标签。gydF4y2Ba

加载gydF4y2Ba电离层gydF4y2Ba数据集。该数据集有34个预测器和351个雷达返回的二进制响应,要么是坏的(gydF4y2Ba“b”gydF4y2Ba)或好(gydF4y2Ba‘g’gydF4y2Ba).gydF4y2Ba

负载gydF4y2Ba电离层gydF4y2Ba

使用默认的交叉验证选项创建一个交叉验证的GAM。指定gydF4y2Ba“CrossVal”gydF4y2Ba名称-值参数为gydF4y2Ba“上”gydF4y2Ba.gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba%用于再现性gydF4y2BaCVMdl = fitcmap (X,Y,gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba)gydF4y2Ba
CVMdl = ClassificationPartitionedGAM CrossValidatedModel: 'GAM' PredictorNames: {1x34 cell} ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] NumTrainedPerFold: [1x1 struct] ClassNames: {'b' 'g'} ScoreTransform: 'logit'属性,方法gydF4y2Ba

的gydF4y2BafitcgamgydF4y2Ba函数创建gydF4y2BaClassificationPartitionedGAMgydF4y2Ba模型对象gydF4y2BaCVMdlgydF4y2Ba10次折叠。在交叉验证期间,软件完成以下步骤:gydF4y2Ba

  1. 将数据随机划分为10组。gydF4y2Ba

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

  3. 将10个紧凑的训练过的模型存储在一个10 × 1的单元格向量中gydF4y2Ba训练有素的gydF4y2Ba交叉验证模型对象的属性gydF4y2BaClassificationPartitionedGAMgydF4y2Ba.gydF4y2Ba

属性可以覆盖默认的交叉验证设置gydF4y2Ba“CVPartition”gydF4y2Ba,gydF4y2Ba“坚持”gydF4y2Ba,gydF4y2Ba“KFold”gydF4y2Ba,或gydF4y2Ba“Leaveout”gydF4y2Ba名称-值参数。gydF4y2Ba

将观察结果分类为gydF4y2BaXgydF4y2Ba通过使用gydF4y2BakfoldPredictgydF4y2Ba.该函数使用在没有该观察的情况下训练的模型预测每个观察的类别标签。gydF4y2Ba

label = kfoldPredict(CVMdl);gydF4y2Ba

创建一个混淆矩阵,将观察到的真实类别与其预测的标签进行比较。gydF4y2Ba

C =混淆图(Y,标签);gydF4y2Ba

图包含一个confusimatrixchart类型的对象。gydF4y2Ba

计算分类误差。gydF4y2Ba

L = kfoldLoss(cvdl)gydF4y2Ba
L = 0.0712gydF4y2Ba

10次以上的平均误分类率约为7%。gydF4y2Ba

方法优化GAM的超参数,使之与交叉验证损失相关gydF4y2BaOptimizeHyperparametersgydF4y2Ba名称-值参数。gydF4y2Ba

加载中存储的1994年人口普查数据gydF4y2Bacensus1994.matgydF4y2Ba.该数据集由美国人口普查局的人口统计数据组成,用于预测一个人的年收入是否超过5万美元。分类任务是拟合一个模型,该模型可以根据年龄、工人阶级、教育水平、婚姻状况、种族等预测人们的工资类别。gydF4y2Ba

负载gydF4y2Bacensus1994gydF4y2Ba

census1994gydF4y2Ba包含训练数据集gydF4y2BaadultdatagydF4y2Ba和测试数据集gydF4y2Ba成人gydF4y2Ba.为了减少此示例的运行时间,使用子样本500个训练观察值和500个测试观察值gydF4y2BadatasamplegydF4y2Ba函数。gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba) NumSamples = 5e2;成人数据= datasample(成人数据,NumSamples,gydF4y2Ba“替换”gydF4y2Ba、假);adulttest = datasample(adulttest,NumSamples,gydF4y2Ba“替换”gydF4y2Ba、假);gydF4y2Ba

通过传递训练数据来训练一个GAM分类器gydF4y2BaadultdatagydF4y2Ba到gydF4y2BafitcgamgydF4y2Ba函数,并包括gydF4y2BaOptimizeHyperparametersgydF4y2Ba论点。指定gydF4y2BaOptimizeHyperparametersgydF4y2Ba作为gydF4y2Ba“汽车”gydF4y2Ba这gydF4y2BafitcgamgydF4y2Ba找到的最优值gydF4y2BaInitialLearnRateForPredictorsgydF4y2Ba,gydF4y2BaNumTreesPerPredictorgydF4y2Ba,gydF4y2Ba的相互作用gydF4y2Ba,gydF4y2BaInitialLearnRateForInteractionsgydF4y2Ba,gydF4y2BaNumTreesPerInteractiongydF4y2Ba.为了重现性,选择gydF4y2Ba“expected-improvement-plus”gydF4y2Ba采集功能。默认的采集函数取决于运行时,因此可以给出不同的结果。gydF4y2Ba

Mdl = fitccam(成人数据,gydF4y2Ba“工资”gydF4y2Ba,gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba,gydF4y2Ba“汽车”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba结构(gydF4y2Ba“AcquisitionFunctionName”gydF4y2Ba,gydF4y2Ba“expected-improvement-plus”gydF4y2Ba))gydF4y2Ba
|==========================================================================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | InitialLearnRate - | NumTreesPerP——| |交互InitialLearnRate - | NumTreesPerI——| | |结果| | |运行时(观察)| (estim) | ForPredictors | redictor | | ForInteractions | nteraction ||==========================================================================================================================================================| | 最好1 | | 0.148 | 11.721 | 0.148 | 0.148 | 0.001555 | 356 | 5 | 0.068117 | 16 | | 2 |接受| 0.182 | 0.88258 | 0.148 | 0.14977 | 0.94993 | 25 | 0  | - | - | | 3 |接受| 0.174 | 0.5938 | 0.148 | 0.148 | 0.016784 | 11 | 3 | 0.12025 | 12 | | 4 |接受| 0.176 | 10.466 | 0.148 | 0.148 | 0.14207 | 179 | 71 | 0.0020629 | 22 | | 5 |接受| 0.176 | 9.6859 | 0.148 | 0.1502 | 0.0010025 | 104 | 178 | | 0.0052651 | | 6 |接受| 0.152 | 9.212 | 0.148 | 0.15035 | 0.0017566 | 323 | 4 | 0.079281 | 16 | | | 7日接受| 0.166 | 16.319 | 0.148 | 0.14801 | 0.0011656 | 497 | | 0.17479 | 92 | | 8 |接受| 0.172 | 10.99 | 0.148 | 0.14914 | 0.0014435 | 397 | 0  | - | - | | 9 |接受| 0.16 | 11.9 | 0.148 | 0.14801 | 0.0016398 | 432 | 2 | 0.045129 | 11 | | |接受10 | 0.172 | 4.414 | 0.148 | 0.14855 | 0.0013589 | 146 | | 0.065204 |12 | | | 11日接受| 0.156 | 10.724 | 0.148 | 0.14911 | 0.002082 | 368 | 7 | 0.0011513 | 12 | | | 12日接受| 0.178 | 11.031 | 0.148 | 0.14801 | 0.13309 | 360 | 6 | 0.67104 | 13 | | | 13日接受| 0.154 | 11.475 | 0.148 | 0.15192 | 0.0014287 | 380 | 5 | 0.027919 | 18 | | | 14日接受| 0.164 | 10.497 | 0.148 | 0.15151 | 0.0015368 | 318 | 5 | 0.022401 | 93 | |最好15 | | 0.144 | 9.6966 | 0.144 | 0.14515 | 0.0020403 | 331 | 8 | 0.12167 | 11 | | | 16日接受| 0.168 | 9.6039 | 0.144 | 0.14401 |0.0016201 | 329 | | 0.74319 | 12 | | | 17日接受| 0.16 | 9.0822 | 0.144 | 0.1526 | 0.002317 | 313 | | 0.093554 | 18 | | | 18日接受| 0.158 | 9.8266 | 0.144 | 0.15425 | 0.0016865 | 331 | 5 | 0.023535 | 11 | | | 19日接受| 0.146 | 11.464 | 0.144 | 0.15096 | 0.0019238 | 386 | 6 | 0.043578 | 14 | | |接受20 | 0.156 | 11.165 | 0.144 | 0.15234 | 0.0023502 | 385 | 6 | 0.063029 | 11 ||==========================================================================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | InitialLearnRate - | NumTreesPerP——| |交互InitialLearnRate - | NumTreesPerI——| | |结果| | |运行时(观察)| (estim) | ForPredictors | redictor | | ForInteractions | nteraction ||==========================================================================================================================================================| | 21日|接受| 0.146 | 11.203 | 0.144 | 0.15105 | 0.0023381 | 383 | 6 | 0.042149 | 21 | | 22最好| | 0.142 | 11.922 | 0.142 | 0.14959 | 0.0024173 | 400 | 7 | 0.022884 | 18 | | | 23日接受| 0.152 | 13.325 | 0.142 | 0.14972 | 0.0017718 | 443 | 8 | 0.022974 | 18 | | 24最好| | 0.14 | 12.785 | 0.14 | 0.14681 | 0.0032302 | 417 | 7 | 0.01295 |23 | | 25 | Accept | 0.148 | 11.121 | 0.14 | 0.14672 | 0.0043102 | 371 | 6 | 0.016624 | 27 | | 26 | Accept | 0.14 | 11.871 | 0.14 | 0.14433 | 0.0029528 | 410 | 6 | 0.011766 | 25 | | 27 | Accept | 0.15 | 13.058 | 0.14 | 0.14441 | 0.0038288 | 455 | 6 | 0.038686 | 14 | | 28 | Accept | 0.144 | 13.992 | 0.14 | 0.14374 | 0.0030969 | 471 | 7 | 0.0093565 | 39 | | 29 | Accept | 0.144 | 14.149 | 0.14 | 0.14331 | 0.0033063 | 487 | 5 | 0.0033831 | 26 | | 30 | Best | 0.138 | 12.442 | 0.138 | 0.14213 | 0.0031221 | 420 | 5 | 0.0035267 | 26 |

__________________________________________________________ 优化完成。最大目标达到30个。总的函数评估:30总的运行时间:326.2596秒总的目标函数评估时间:316.6185最佳观测可行点:InitialLearnRateForPredictors NumTreesPerPredictor Interactions InitialLearnRateForInteractions NumTreesPerInteraction _____________________________ ____________________ ____________ _______________________________ ______________________ 0.0031221 420 5 0.0035267 26观测目标函数值= 0.138估计目标函数值= 0.14267函数评估时间= 12.4417最佳估计可行点(根据模型):InitialLearnRateForPredictors NumTreesPerPredictor交互InitialLearnRateForInteractions NumTreesPerInteraction  _____________________________ ____________________ ____________ _______________________________ ______________________ 0.0029528 410年6 0.011766 25估计目标函数值= 0.14213估计时间评估函数= 12.2594gydF4y2Ba
Mdl = ClassificationGAM PredictorNames: {'age' 'workClass' 'fnlwgt' 'education' 'education_num' 'marital_status' 'occupation' 'relationship' 'race' 'sex' 'capital_gain' 'capital_loss' 'hours_per_week' 'native_country'} ResponseName: 'salary' CategoricalPredictors: [2 4 6 7 8 9 10 14] ClassNames: [<=50K >50K] ScoreTransform: 'logit'拦截:-1.3924交互:[6×2 double] NumObservations: 500 HyperparameterOptimizationResults: [1×1 BayesianOptimization]属性,方法gydF4y2Ba

fitcgamgydF4y2Ba返回一个gydF4y2BaClassificationGAMgydF4y2Ba使用最佳估计可行点的模型对象。基于贝叶斯优化过程的底层高斯过程模型,最佳估计可行点是使交叉验证损失的置信上限最小化的超参数集。gydF4y2Ba

贝叶斯优化过程内部维持了目标函数的高斯过程模型。目标函数为交叉验证的分类误分类率。对于每次迭代,优化过程都会更新高斯过程模型,并使用该模型找到一组新的超参数。迭代显示的每一行都显示了新的超参数集和这些列值:gydF4y2Ba

  • 客观的gydF4y2Ba-在新的超参数集上计算目标函数值。gydF4y2Ba

  • 目标运行时gydF4y2Ba-目标函数评价时间。gydF4y2Ba

  • Eval结果gydF4y2Ba—结果报告,指定为gydF4y2Ba接受gydF4y2Ba,gydF4y2Ba最好的gydF4y2Ba,或gydF4y2Ba错误gydF4y2Ba.gydF4y2Ba接受gydF4y2Ba表示目标函数返回一个有限值,和gydF4y2Ba错误gydF4y2Ba指示目标函数返回一个不是有限实标量的值。gydF4y2Ba最好的gydF4y2Ba指示目标函数返回一个有限值,该值低于先前计算的目标函数值。gydF4y2Ba

  • BestSoFar(观察)gydF4y2Ba-目前计算的最小目标函数值。此值是当前迭代的目标函数值(如果gydF4y2BaEval结果gydF4y2Ba当前迭代的值为gydF4y2Ba最好的gydF4y2Ba)或前一个的值gydF4y2Ba最好的gydF4y2Ba迭代。gydF4y2Ba

  • BestSoFar (estim)。gydF4y2Ba-在每次迭代中,软件在迄今为止尝试的所有超参数集上,使用更新的高斯过程模型估计目标函数值的置信上限。然后软件选择上置信界最小的点。的gydF4y2BaBestSoFar (estim)。gydF4y2Ba方法返回的目标函数值gydF4y2BapredictObjectivegydF4y2Ba函数在最小值处。gydF4y2Ba

迭代显示下面的图显示gydF4y2BaBestSoFar(观察)gydF4y2Ba而且gydF4y2BaBestSoFar (estim)。gydF4y2Ba分别用蓝色和绿色表示。gydF4y2Ba

返回的对象gydF4y2BaMdlgydF4y2Ba使用最佳估计可行点,即产生的超参数集gydF4y2BaBestSoFar (estim)。gydF4y2Ba在最终的高斯过程模型的基础上进行最后的迭代。gydF4y2Ba

得到的最佳估计可行点gydF4y2BaMdlgydF4y2Ba在gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba财产。gydF4y2Ba

Mdl.HyperparameterOptimizationResults.XAtMinEstimatedObjectivegydF4y2Ba
ans =gydF4y2Ba表1×5gydF4y2BaInitialLearnRateForPredictors NumTreesPerPredictor交互InitialLearnRateForInteractions NumTreesPerInteraction  _____________________________ ____________________ ____________ _______________________________ ______________________ 0.011766 0.0029528 410 6 25gydF4y2Ba

或者,您可以使用gydF4y2BabestPointgydF4y2Ba函数。默认情况下,gydF4y2BabestPointgydF4y2Ba函数使用gydF4y2Ba“min-visited-upper-confidence-interval”gydF4y2Ba标准。gydF4y2Ba

[x,CriterionValue,iteration] = bestPoint(mml . hyperparameteroptimizationresults)gydF4y2Ba
x =gydF4y2Ba表1×5gydF4y2BaInitialLearnRateForPredictors NumTreesPerPredictor交互InitialLearnRateForInteractions NumTreesPerInteraction  _____________________________ ____________________ ____________ _______________________________ ______________________ 0.011766 0.0029528 410 6 25gydF4y2Ba
CriterionValue = 0.1464gydF4y2Ba
迭代= 26gydF4y2Ba

的gydF4y2Ba“min-visited-upper-confidence-interval”gydF4y2BaCriterion选择第26次迭代得到的超参数作为最佳点。gydF4y2BaCriterionValuegydF4y2Ba为最终高斯过程模型计算的交叉验证损失的上界。gydF4y2Ba

您还可以提取最佳观测可行点(即最后gydF4y2Ba最好的gydF4y2Ba点在迭代显示)从gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba属性或通过指定gydF4y2Ba标准gydF4y2Ba作为gydF4y2Ba“min-observed”gydF4y2Ba.gydF4y2Ba

Mdl.HyperparameterOptimizationResults.XAtMinObjectivegydF4y2Ba
ans =gydF4y2Ba表1×5gydF4y2BaInitialLearnRateForPredictors NumTreesPerPredictor交互InitialLearnRateForInteractions NumTreesPerInteraction  _____________________________ ____________________ ____________ _______________________________ ______________________ 0.0031221 420年5 0.0035267 26gydF4y2Ba
[x_observed,CriterionValue_observed,iteration_observed] = bestPoint(Mdl。HyperparameterOptimizationResults,gydF4y2Ba“标准”gydF4y2Ba,gydF4y2Ba“min-observed”gydF4y2Ba)gydF4y2Ba
x_observed =gydF4y2Ba表1×5gydF4y2BaInitialLearnRateForPredictors NumTreesPerPredictor交互InitialLearnRateForInteractions NumTreesPerInteraction  _____________________________ ____________________ ____________ _______________________________ ______________________ 0.0031221 420年5 0.0035267 26gydF4y2Ba
CriterionValue_observed = 0.1380gydF4y2Ba
Iteration_observed = 30gydF4y2Ba

的gydF4y2Ba“min-observed”gydF4y2BaCriterion选择第30次迭代得到的超参数作为最佳点。gydF4y2BaCriterionValue_observedgydF4y2Ba使用所选超参数计算的实际交叉验证损失。有关更多信息,请参见gydF4y2Ba标准gydF4y2Ba的名称-值参数gydF4y2BabestPointgydF4y2Ba.gydF4y2Ba

通过计算测试集分类误差来评估分类器在测试集上的性能。gydF4y2Ba

L =损失(Mdl,成人,gydF4y2Ba“工资”gydF4y2Ba)gydF4y2Ba
L = 0.1564gydF4y2Ba

在交叉验证方面优化GAM的参数gydF4y2BabayesoptgydF4y2Ba函数。gydF4y2Ba

或者,您可以找到的最佳值gydF4y2BafitcgamgydF4y2Ba的名称-值参数gydF4y2BaOptimizeHyperparametersgydF4y2Ba名称-值参数。有关示例,请参见gydF4y2Ba使用OptimizeHyperparameters优化GAMgydF4y2Ba.gydF4y2Ba

加载中存储的1994年人口普查数据gydF4y2Bacensus1994.matgydF4y2Ba.该数据集由美国人口普查局的人口统计数据组成,用于预测一个人的年收入是否超过5万美元。分类任务是拟合一个模型,该模型可以根据年龄、工人阶级、教育水平、婚姻状况、种族等预测人们的工资类别。gydF4y2Ba

负载gydF4y2Bacensus1994gydF4y2Ba

census1994gydF4y2Ba包含训练数据集gydF4y2BaadultdatagydF4y2Ba和测试数据集gydF4y2Ba成人gydF4y2Ba.为了减少本例的运行时间,从gydF4y2BaadultdatagydF4y2Ba通过使用gydF4y2BadatasamplegydF4y2Ba函数。gydF4y2Ba

rng (gydF4y2Ba“默认”gydF4y2Ba) NumSamples = 5e2;成人数据= datasample(成人数据,NumSamples,gydF4y2Ba“替换”gydF4y2Ba、假);gydF4y2Ba

为交叉验证设置一个分区。此步骤修复优化在每个步骤中使用的交叉验证集。gydF4y2Ba

C = cvpartition(adultdata.salary)gydF4y2Ba“KFold”gydF4y2Ba5);gydF4y2Ba

准备gydF4y2BaoptimizableVariablegydF4y2Ba对象的名称-值参数,您希望使用贝叶斯优化。的最佳值gydF4y2BaMaxNumSplitsPerPredictorgydF4y2Ba而且gydF4y2BaNumTreesPerPredictorgydF4y2Ba参数的gydF4y2BafitcgamgydF4y2Ba.gydF4y2Ba

maxnumsplitting = optimizableVariable(gydF4y2Ba“maxNumSplits”gydF4y2Ba(1, 10),gydF4y2Ba“类型”gydF4y2Ba,gydF4y2Ba“整数”gydF4y2Ba);numTrees = optimizableVariable(gydF4y2Ba“numTrees”gydF4y2Ba[1500],gydF4y2Ba“类型”gydF4y2Ba,gydF4y2Ba“整数”gydF4y2Ba);gydF4y2Ba

创建一个接受输入的目标函数gydF4y2Baz = [maxnumsplitting,numTrees]gydF4y2Ba的交叉验证的损失值gydF4y2BazgydF4y2Ba.gydF4y2Ba

minfun = @(z)kfoldLoss(fitcgram(成人数据,gydF4y2Ba“工资”gydF4y2Ba,gydF4y2Ba“CVPartition”gydF4y2BacgydF4y2Ba...gydF4y2Ba“MaxNumSplitsPerPredictor”gydF4y2Baz.maxNumSplits,gydF4y2Ba...gydF4y2Ba“NumTreesPerPredictor”gydF4y2Baz.numTrees));gydF4y2Ba

如果指定交叉验证选项,则gydF4y2BafitcgamgydF4y2Ba函数返回交叉验证的模型对象gydF4y2BaClassificationPartitionedGAMgydF4y2Ba.的gydF4y2BakfoldLossgydF4y2Ba函数返回交叉验证模型获得的分类损失。因此,函数句柄gydF4y2BaminfungydF4y2Ba中的参数处计算交叉验证损失gydF4y2BazgydF4y2Ba.gydF4y2Ba

寻找最佳参数gydF4y2Ba[maxNumSplits, numTrees]gydF4y2Ba使用gydF4y2BabayesoptgydF4y2Ba.为了重现性,选择gydF4y2Ba“expected-improvement-plus”gydF4y2Ba采集功能。默认的采集函数取决于运行时,因此可以给出不同的结果。gydF4y2Ba

results = bayesopt(minfun,[maxnum劈叉,numTrees],gydF4y2Ba“详细”gydF4y2Ba0,gydF4y2Ba...gydF4y2Ba“IsObjectiveDeterministic”gydF4y2Ba,真的,gydF4y2Ba...gydF4y2Ba“AcquisitionFunctionName”gydF4y2Ba,gydF4y2Ba“expected-improvement-plus”gydF4y2Ba);gydF4y2Ba

从中获得最佳点gydF4y2Ba结果gydF4y2Ba.gydF4y2Ba

zbest = bestPoint(结果)gydF4y2Ba
zb =gydF4y2Ba1×2表gydF4y2Bamaxnum劈叉numTrees ____________ ________ 15gydF4y2Ba

训练一个优化的GAMgydF4y2BazbgydF4y2Ba值。gydF4y2Ba

Mdl = fitccam(成人数据,gydF4y2Ba“工资”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“MaxNumSplitsPerPredictor”gydF4y2Bazbest.maxNumSplits,gydF4y2Ba...gydF4y2Ba“NumTreesPerPredictor”gydF4y2Ba, zbest.numTrees);gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

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

可选地,gydF4y2Ba资源描述gydF4y2Ba可以包含响应变量的一列和观测权重的一列。gydF4y2Ba

  • 响应变量必须是类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。gydF4y2Ba

    • fitcgamgydF4y2Ba金宝app只支持二进制分类。响应变量必须包含恰好两个不同的类,或者必须使用gydF4y2Ba一会gydF4y2Ba名称-值参数。gydF4y2Ba

    • 类在响应变量中指定类的顺序是一种良好的实践gydF4y2Ba一会gydF4y2Ba名称-值参数。gydF4y2Ba

  • 权重的列必须是数字向量。gydF4y2Ba

  • 中必须指定响应变量gydF4y2Ba资源描述gydF4y2Ba通过使用gydF4y2BaResponseVarNamegydF4y2Ba或gydF4y2Ba公式gydF4y2Ba并指定观测权重gydF4y2Ba资源描述gydF4y2Ba通过使用gydF4y2Ba权重gydF4y2Ba.gydF4y2Ba

    • 通过使用指定响应变量gydF4y2BaResponseVarNamegydF4y2Ba- - - - - -gydF4y2BafitcgamgydF4y2Ba使用其余变量作为预测器。中剩余变量的子集gydF4y2Ba资源描述gydF4y2Ba作为预测器,使用指定预测器变量gydF4y2BaPredictorNamesgydF4y2Ba.gydF4y2Ba

    • 使用定义模型规范gydF4y2Ba公式gydF4y2Ba- - - - - -gydF4y2BafitcgamgydF4y2Ba中的变量的子集gydF4y2Ba资源描述gydF4y2Ba作为预测变量和响应变量,如gydF4y2Ba公式gydF4y2Ba.gydF4y2Ba

如果gydF4y2Ba资源描述gydF4y2Ba不包含响应变量,然后通过使用gydF4y2BaYgydF4y2Ba.响应变量的长度gydF4y2BaYgydF4y2Ba和进去的行数gydF4y2Ba资源描述gydF4y2Ba必须是相等的。中变量的子集gydF4y2Ba资源描述gydF4y2Ba作为预测器,使用指定预测器变量gydF4y2BaPredictorNamesgydF4y2Ba.gydF4y2Ba

fitcgamgydF4y2Ba认为gydF4y2Ba南gydF4y2Ba,gydF4y2Ba''gydF4y2Ba(空字符向量),gydF4y2Ba""gydF4y2Ba(空字符串),gydF4y2Ba< >失踪gydF4y2Ba,gydF4y2Ba<定义>gydF4y2Ba值gydF4y2Ba资源描述gydF4y2Ba丢失的值。gydF4y2Ba

  • fitcgamgydF4y2Ba在拟合中不使用所有缺失值的观测值。gydF4y2Ba

  • fitcgamgydF4y2Ba在拟合中不使用缺少响应值的观测值。gydF4y2Ba

  • fitcgamgydF4y2Ba使用带有一些缺失值的观测值作为预测器,以找到这些观测值具有有效值的变量上的分割。gydF4y2Ba

数据类型:gydF4y2Ba表格gydF4y2Ba

响应变量名,指定为包含响应变量名的字符向量或字符串标量gydF4y2Ba资源描述gydF4y2Ba.例如,如果响应变量gydF4y2BaYgydF4y2Ba存储在gydF4y2Ba资源描述。YgydF4y2Ba,然后指定为gydF4y2Ba“Y”gydF4y2Ba.gydF4y2Ba

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

模型规范,在表单中指定为字符向量或字符串标量gydF4y2Ba“Y ~项”gydF4y2Ba.的gydF4y2Ba公式gydF4y2Ba参数指定响应变量和预测变量的线性和交互项。使用gydF4y2Ba公式gydF4y2Ba中指定变量的子集gydF4y2Ba资源描述gydF4y2Ba作为训练模型的预测因子。如果您指定了一个公式,那么该软件不使用任何变量gydF4y2Ba资源描述gydF4y2Ba没有出现在gydF4y2Ba公式gydF4y2Ba.gydF4y2Ba

例如,指定gydF4y2BaY ~ x1 + x2 + x3 + x1, x2”gydF4y2Ba.在这种形式下,gydF4y2BaYgydF4y2Ba表示响应变量,和gydF4y2Bax1gydF4y2Ba,gydF4y2Bax2gydF4y2Ba,gydF4y2Bax3gydF4y2Ba表示预测变量的线性项。gydF4y2Bax1, x2gydF4y2Ba表示的交互项gydF4y2Bax1gydF4y2Ba而且gydF4y2Bax2gydF4y2Ba.gydF4y2Ba

公式中的变量名必须同时为gydF4y2Ba资源描述gydF4y2Ba(gydF4y2BaTbl.Properties.VariableNamesgydF4y2Ba)和有效的MATLABgydF4y2Ba®gydF4y2Ba标识符。中的变量名可以验证gydF4y2Ba资源描述gydF4y2Ba通过使用gydF4y2BaisvarnamegydF4y2Ba函数。变量名无效,则可以使用gydF4y2Bamatlab.lang.makeValidNamegydF4y2Ba函数。gydF4y2Ba

或者,您可以为预测器指定响应变量和线性术语gydF4y2Ba公式gydF4y2Ba,并为使用的预测器指定交互术语gydF4y2Ba“互动”gydF4y2Ba.gydF4y2Ba

fitcgamgydF4y2Ba仅使用术语whose构建一组交互树gydF4y2BapgydF4y2Ba-values不大于gydF4y2Ba“MaxPValue”gydF4y2Ba价值。gydF4y2Ba

例子:gydF4y2BaY ~ x1 + x2 + x3 + x1, x2”gydF4y2Ba

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

类标签,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。gydF4y2Ba

  • fitcgamgydF4y2Ba金宝app只支持二进制分类。要么gydF4y2BaYgydF4y2Ba必须包含两个完全不同的类,或者必须使用gydF4y2Ba一会gydF4y2Ba名称-值参数。gydF4y2Ba

  • 的长度gydF4y2BaYgydF4y2Ba必须等于中的观测数gydF4y2BaXgydF4y2Ba或gydF4y2Ba资源描述gydF4y2Ba.gydF4y2Ba

  • 如果gydF4y2BaYgydF4y2Ba是字符数组,则每个标签必须对应数组中的一行。gydF4y2Ba

  • 类指定类顺序是一个很好的实践gydF4y2Ba一会gydF4y2Ba名称-值对参数。gydF4y2Ba

  • fitcgamgydF4y2Ba认为gydF4y2Ba南gydF4y2Ba,gydF4y2Ba''gydF4y2Ba(空字符向量),gydF4y2Ba""gydF4y2Ba(空字符串),gydF4y2Ba< >失踪gydF4y2Ba,gydF4y2Ba<定义>gydF4y2Ba值gydF4y2BaYgydF4y2Ba丢失的值。gydF4y2BafitcgamgydF4y2Ba在拟合中不使用缺少响应值的观测值。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba分类gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

预测器数据,指定为数值矩阵。每行gydF4y2BaXgydF4y2Ba对应一个观测值,每一列对应一个预测变量。gydF4y2Ba

fitcgamgydF4y2Ba认为gydF4y2Ba南gydF4y2Ba值gydF4y2BaXgydF4y2Ba作为缺失值。该函数不使用符合中所有缺失值的观测值。gydF4y2BafitcgamgydF4y2Ba使用一些缺少值的观测值gydF4y2BaXgydF4y2Ba在这些观察值有效的变量上找到分裂。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

名称-值参数gydF4y2Ba

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

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来gydF4y2Ba的名字gydF4y2Ba在报价。gydF4y2Ba

例子:gydF4y2Ba“互动”,“所有”、“MaxPValue”,0.05gydF4y2Ba指定包含所有可用的交互术语gydF4y2BapgydF4y2Ba-values不大于0.05。gydF4y2Ba

GAM选项gydF4y2Ba

全部折叠gydF4y2Ba

交互项的梯度提升的初始学习率,指定为区间(0,1]中的数值标量。gydF4y2Ba

对于交互树的每次增强迭代,gydF4y2BafitcgamgydF4y2Ba开始适应初始学习速率。该函数将学习速率减半,直到找到一个提高模型拟合的速率。gydF4y2Ba

使用较小的学习率训练模型需要更多的学习迭代,但通常可以获得更好的精度。gydF4y2Ba

有关梯度增强的详细信息,请参见gydF4y2Ba梯度增强算法gydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“InitialLearnRateForInteractions”,0.1gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

线性项的梯度提升的初始学习率,指定为区间(0,1]中的数值标量。gydF4y2Ba

对于预测树的每次增强迭代,gydF4y2BafitcgamgydF4y2Ba开始适应初始学习速率。该函数将学习速率减半,直到找到一个提高模型拟合的速率。gydF4y2Ba

使用较小的学习率训练模型需要更多的学习迭代,但通常可以获得更好的精度。gydF4y2Ba

有关梯度增强的详细信息,请参见gydF4y2Ba梯度增强算法gydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“InitialLearnRateForPredictors”,0.1gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

要包含在候选集中的交互术语的数量或列表gydF4y2Ba年代gydF4y2Ba,指定为非负整数标量、逻辑矩阵或gydF4y2Ba“所有”gydF4y2Ba.gydF4y2Ba

  • 交互项的数目,指定为非负整数-gydF4y2Ba年代gydF4y2Ba包含指定数量的重要交互项,这些项是根据gydF4y2BapgydF4y2Ba-项的值。gydF4y2Ba

  • 交互术语列表,指定为逻辑矩阵-gydF4y2Ba年代gydF4y2Ba项指定的条款gydF4y2BatgydF4y2Ba——- - - - - -gydF4y2BapgydF4y2Ba逻辑矩阵,其中gydF4y2BatgydF4y2Ba交互项的个数,和gydF4y2BapgydF4y2Ba用于训练模型的预测器的数量。例如,gydF4y2Ba逻辑([1 10 0;0 1 1])gydF4y2Ba表示两对交互项:一对第一个和第二个预测符,一对第二个和第三个预测符。gydF4y2Ba

    如果gydF4y2BafitcgamgydF4y2Ba使用输入变量的子集作为预测器,然后函数仅使用该子集对预测器进行索引。即逻辑矩阵的列索引不计算响应和观测权重变量。索引也不计算函数未使用的任何变量。gydF4y2Ba

  • “所有”gydF4y2Ba- - - - - -gydF4y2Ba年代gydF4y2Ba包括所有可能的交互项对,即gydF4y2BaP *(P - 1)/2gydF4y2Ba总项数。gydF4y2Ba

在的交互项中gydF4y2Ba年代gydF4y2Ba,gydF4y2BafitcgamgydF4y2Ba函数标识了gydF4y2BapgydF4y2Ba-values不大于gydF4y2Ba“MaxPValue”gydF4y2Ba值并使用它们来构建一组交互树。使用默认值(gydF4y2Ba“MaxPValue”gydF4y2Ba,1)利用中所有术语构建交互树gydF4y2Ba年代gydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“互动”、“所有”gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

每个交互树(交互术语的增强树)的最大决策分割(或分支节点)数量,指定为正整数标量。gydF4y2Ba

例子:gydF4y2Ba“MaxNumSplitsPerInteraction”,5gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

每个预测树(线性项的增强树)的决策分割(或分支节点)的最大数量,指定为正整数标量。默认情况下,gydF4y2BafitcgamgydF4y2Ba使用树桩作为预测树。gydF4y2Ba

例子:gydF4y2Ba“MaxNumSplitsPerPredictor”,5gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

最大gydF4y2BapgydF4y2Ba-value用于检测交互项,指定为区间[0,1]中的数字标量。gydF4y2Ba

fitcgamgydF4y2Ba首先找到候选集gydF4y2Ba年代gydF4y2Ba相互作用的术语gydF4y2Ba公式gydF4y2Ba或gydF4y2Ba“互动”gydF4y2Ba.然后,该函数确定其交互项gydF4y2BapgydF4y2Ba-values不大于gydF4y2Ba“MaxPValue”gydF4y2Ba值并使用它们来构建一组交互树。gydF4y2Ba

默认值(gydF4y2Ba“MaxPValue”,1gydF4y2Ba)为候选集中的所有交互术语构建交互树gydF4y2Ba年代gydF4y2Ba.gydF4y2Ba

有关检测交互项的详细信息,请参见gydF4y2Ba交互项检测gydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“MaxPValue”,0.05gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

数值预测器的箱数,指定为正整数标量或gydF4y2Ba[]gydF4y2Ba(空的)。gydF4y2Ba

  • 如果您指定gydF4y2Ba“NumBins”gydF4y2Ba值作为正整数标量(gydF4y2BanumBinsgydF4y2Ba),然后gydF4y2BafitcgamgydF4y2Ba将每个数字预测器放入最多gydF4y2BanumBinsgydF4y2Ba等概率容器,然后在容器索引上生长树,而不是原始数据。gydF4y2Ba

    • 箱子的数量可以小于gydF4y2BanumBinsgydF4y2Ba如果一个预测器的值小于gydF4y2BanumBinsgydF4y2Ba独特的价值观。gydF4y2Ba

    • fitcgamgydF4y2Ba不包含分类预测符。gydF4y2Ba

  • 如果gydF4y2Ba“NumBins”gydF4y2Ba值为空(gydF4y2Ba[]gydF4y2Ba),然后gydF4y2BafitcgamgydF4y2Ba不丢弃任何预测器。gydF4y2Ba

当您使用大型训练数据集时,此分箱选项可以加快训练速度,但可能会导致准确性下降。的默认值gydF4y2Ba“NumBins”gydF4y2Ba,然后根据精度和训练速度改变值。gydF4y2Ba

训练过的模型gydF4y2BaMdlgydF4y2Ba控件中存储料仓边gydF4y2BaBinEdgesgydF4y2Ba财产。gydF4y2Ba

例子:gydF4y2Ba“NumBins”,50岁gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

每个交互项的树数,指定为正整数标量。gydF4y2Ba

的gydF4y2Ba“NumTreesPerInteraction”gydF4y2BaValue等价于预测器交互项的梯度增强迭代次数。对于每一次迭代,gydF4y2BafitcgamgydF4y2Ba将一组交互树添加到模型中,每个交互术语对应一棵树。要了解梯度增强算法,请参见gydF4y2Ba梯度增强算法gydF4y2Ba.gydF4y2Ba

通过查看时显示的诊断信息,可以判断拟合模型是否具有指定的树数gydF4y2Ba“详细”gydF4y2Ba是1还是2,还是通过检查gydF4y2BaReasonForTerminationgydF4y2Ba模型的属性值gydF4y2BaMdlgydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“NumTreesPerInteraction”,500年gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

每个线性项的树数,指定为正整数标量。gydF4y2Ba

的gydF4y2Ba“NumTreesPerPredictor”gydF4y2BaValue等价于预测器线性项的梯度增强迭代次数。对于每一次迭代,gydF4y2BafitcgamgydF4y2Ba向模型中添加一组预测树,每个预测树对应一棵。要了解梯度增强算法,请参见gydF4y2Ba梯度增强算法gydF4y2Ba.gydF4y2Ba

通过查看时显示的诊断信息,可以判断拟合模型是否具有指定的树数gydF4y2Ba“详细”gydF4y2Ba是1还是2,还是通过检查gydF4y2BaReasonForTerminationgydF4y2Ba模型的属性值gydF4y2BaMdlgydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“NumTreesPerPredictor”,500年gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

其他分类选择gydF4y2Ba

全部折叠gydF4y2Ba

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

价值gydF4y2Ba 描述gydF4y2Ba
正整数向量gydF4y2Ba

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

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

逻辑向量gydF4y2Ba

一个gydF4y2Ba真正的gydF4y2BaEntry表示对应的预测器是分类的。向量的长度是gydF4y2BapgydF4y2Ba.gydF4y2Ba

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

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

例子:gydF4y2Ba“CategoricalPredictors”、“所有”gydF4y2Ba

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

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

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

使用gydF4y2Ba一会gydF4y2Ba:gydF4y2Ba

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

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

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

的默认值gydF4y2Ba一会gydF4y2Ba响应变量中所有不同类名的集合在吗gydF4y2Ba资源描述gydF4y2Ba或gydF4y2BaYgydF4y2Ba.gydF4y2Ba

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

数据类型:gydF4y2Ba分类gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

一个点的错误分类代价,指定为下列之一:gydF4y2Ba

  • 2 × 2数值矩阵,其中gydF4y2Ba成本(i, j)gydF4y2Ba将一个点分类的成本是多少gydF4y2BajgydF4y2Ba如果它真正的阶级是gydF4y2Ba我gydF4y2Ba(即行对应真实的类,列对应预测的类)。的相应行和列的类顺序gydF4y2Ba成本gydF4y2Ba,设置gydF4y2Ba“类名”gydF4y2Ba名称-值参数。gydF4y2Ba

  • 结构gydF4y2Ba年代gydF4y2Ba有两个字段:gydF4y2BaS.ClassNamesgydF4y2Ba中响应变量的数据类型相同,其中包含组名gydF4y2Ba资源描述gydF4y2Ba或gydF4y2BaYgydF4y2Ba;而且gydF4y2BaS.ClassificationCostsgydF4y2Ba,其中包含成本矩阵。gydF4y2Ba

例子:gydF4y2Ba“成本”,[0 2;1 0]gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba结构体gydF4y2Ba

诊断消息打印输出之间的迭代次数,指定为非负整数标量。此参数仅在指定时有效gydF4y2Ba“详细”gydF4y2Ba为1。gydF4y2Ba

如果你指定gydF4y2Ba“详细”,1gydF4y2Ba而且gydF4y2BaNumPrint, NumPrintgydF4y2Ba时,软件显示诊断信息gydF4y2BanumPrintgydF4y2Ba在命令窗口中的迭代。gydF4y2Ba

例子:gydF4y2Ba“NumPrint”,500年gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

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

  • 如果你提供gydF4y2BaXgydF4y2Ba而且gydF4y2BaYgydF4y2Ba,那么你就可以使用了gydF4y2BaPredictorNamesgydF4y2Ba中预测变量的名称gydF4y2BaXgydF4y2Ba.gydF4y2Ba

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

    • 默认情况下,gydF4y2BaPredictorNamesgydF4y2Ba是gydF4y2Ba{x1, x2,…}gydF4y2Ba.gydF4y2Ba

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

    • PredictorNamesgydF4y2Ba的子集gydF4y2BaTbl.Properties.VariableNamesgydF4y2Ba并且不能包括响应变量的名称。gydF4y2Ba

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

    • 一个好的实践是使用其中一种来指定训练的预测器gydF4y2BaPredictorNamesgydF4y2Ba或gydF4y2Ba公式gydF4y2Ba,但不是两者都有。gydF4y2Ba

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

数据类型:gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

每个类别的先验概率,指定为以下之一:gydF4y2Ba

  • 字符向量或字符串标量。gydF4y2Ba

    • “经验”gydF4y2Ba从响应变量中的类频率确定类概率gydF4y2BaYgydF4y2Ba或gydF4y2Ba资源描述gydF4y2Ba.如果你传递观察权重,gydF4y2BafitcgamgydF4y2Ba使用权重来计算类概率。gydF4y2Ba

    • “统一”gydF4y2Ba将所有类的概率设置为相等。gydF4y2Ba

  • 向量(每个类有一个标量值)。的对应元素的类顺序gydF4y2Ba“之前”gydF4y2Ba,设置gydF4y2Ba“类名”gydF4y2Ba名称-值参数。gydF4y2Ba

  • 结构gydF4y2Ba年代gydF4y2Ba有两个字段。gydF4y2Ba

    • S.ClassNamesgydF4y2Ba中响应变量类型相同的变量包含类名gydF4y2BaYgydF4y2Ba或gydF4y2Ba资源描述gydF4y2Ba.gydF4y2Ba

    • S.ClassProbsgydF4y2Ba包含一个对应概率的向量。gydF4y2Ba

fitcgamgydF4y2Ba规范化每个类中的权重(gydF4y2Ba“重量”gydF4y2Ba),使其相加为各类别的先验概率值。gydF4y2Ba

例子:gydF4y2Ba“前”、“制服”gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba结构体gydF4y2Ba

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

  • 如果你提供gydF4y2BaYgydF4y2Ba,那么你就可以使用了gydF4y2BaResponseNamegydF4y2Ba为响应变量指定名称。gydF4y2Ba

  • 如果你提供gydF4y2BaResponseVarNamegydF4y2Ba或gydF4y2Ba公式gydF4y2Ba,那么你就不能用了gydF4y2BaResponseNamegydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“ResponseName”、“反应”gydF4y2Ba

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

积分转换,指定为内置转换函数名或函数句柄。gydF4y2Ba

这个表总结了可用的分数转换。使用对应的字符向量或字符串标量指定一个。gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
“doublelogit”gydF4y2Ba 1 / (1 +gydF4y2BaegydF4y2Ba2gydF4y2BaxgydF4y2Ba)gydF4y2Ba
“invlogit”gydF4y2Ba 日志(gydF4y2BaxgydF4y2Ba/ (1 -gydF4y2BaxgydF4y2Ba))gydF4y2Ba
“ismax”gydF4y2Ba 将得分最大的类的得分设置为1,并将所有其他类的得分设置为0gydF4y2Ba
“分对数”gydF4y2Ba 1 / (1 +gydF4y2BaegydF4y2Ba- - - - - -gydF4y2BaxgydF4y2Ba)gydF4y2Ba
“没有”gydF4y2Ba或gydF4y2Ba“身份”gydF4y2Ba xgydF4y2Ba(转换)gydF4y2Ba
“标志”gydF4y2Ba 1gydF4y2BaxgydF4y2Ba< 0gydF4y2Ba
为0gydF4y2BaxgydF4y2Ba= 0gydF4y2Ba
1gydF4y2BaxgydF4y2Ba> 0gydF4y2Ba
“对称”gydF4y2Ba 2gydF4y2BaxgydF4y2Ba- 1gydF4y2Ba
“symmetricismax”gydF4y2Ba 将得分最大的类的得分设置为1,并将所有其他类的得分设置为-1gydF4y2Ba
“symmetriclogit”gydF4y2Ba 2 / (1 +gydF4y2BaegydF4y2Ba- - - - - -gydF4y2BaxgydF4y2Ba) - 1gydF4y2Ba

对于MATLAB函数或您定义的函数,使用其函数句柄进行分数转换。函数句柄必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。gydF4y2Ba

此参数决定对象函数的输出分数计算,例如gydF4y2Ba预测gydF4y2Ba,gydF4y2Ba保证金gydF4y2Ba,gydF4y2Ba边缘gydF4y2Ba.使用gydF4y2Ba分对数的gydF4y2Ba(默认)来计算后验概率,并使用gydF4y2Ba“没有”gydF4y2Ba计算后验概率的对数。gydF4y2Ba

例子:gydF4y2Ba“ScoreTransform”、“没有”gydF4y2Ba

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

详细级别,指定为gydF4y2Ba0gydF4y2Ba,gydF4y2Ba1gydF4y2Ba,或gydF4y2Ba2gydF4y2Ba.的gydF4y2Ba详细的gydF4y2Bavalue控制软件在命令窗口中显示的信息量。gydF4y2Ba

下表总结了可用的详细级别选项。gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
0gydF4y2Ba 软件没有显示任何信息。gydF4y2Ba
1gydF4y2Ba 该软件显示诊断信息每gydF4y2BanumPrintgydF4y2Ba迭代,gydF4y2BanumPrintgydF4y2Ba是gydF4y2Ba“NumPrint”gydF4y2Ba价值。gydF4y2Ba
2gydF4y2Ba 软件在每次迭代时显示诊断消息。gydF4y2Ba

诊断消息的每一行都显示了关于每个增强迭代的信息,并包括以下列:gydF4y2Ba

  • 类型gydF4y2Ba-训练树木的类型,gydF4y2Ba1 dgydF4y2Ba(预测树,或用于预测器的线性项的增强树)或gydF4y2Ba二维gydF4y2Ba(交互树,或预测器交互术语的增强树)gydF4y2Ba

  • NumTreesgydF4y2Ba-每个线性项或交互项的树数gydF4y2BafitcgamgydF4y2Ba到目前为止添加到模型中gydF4y2Ba

  • 异常gydF4y2Ba- - - - - -gydF4y2Ba异常gydF4y2Ba模型的gydF4y2Ba

  • RelTolgydF4y2Ba-模型预测的相对变化:gydF4y2Ba (gydF4y2Ba ygydF4y2Ba ^gydF4y2Ba kgydF4y2Ba −gydF4y2Ba ygydF4y2Ba ^gydF4y2Ba kgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba ”gydF4y2Ba (gydF4y2Ba ygydF4y2Ba ^gydF4y2Ba kgydF4y2Ba −gydF4y2Ba ygydF4y2Ba ^gydF4y2Ba kgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba /gydF4y2Ba ygydF4y2Ba ^gydF4y2Ba kgydF4y2Ba ”gydF4y2Ba ygydF4y2Ba ^gydF4y2Ba kgydF4y2Ba ,在那里gydF4y2Ba ygydF4y2Ba ^gydF4y2Ba kgydF4y2Ba 迭代时模型预测的列向量吗gydF4y2BakgydF4y2Ba

  • LearnRategydF4y2Ba-当前迭代使用的学习率gydF4y2Ba

例子:gydF4y2Ba“详细”,1gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

观察权重,指定为矢量的标量值或变量的名称gydF4y2Ba资源描述gydF4y2Ba.软件对每一行的观察结果进行加权gydF4y2BaXgydF4y2Ba或gydF4y2Ba资源描述gydF4y2Ba中对应的值gydF4y2Ba权重gydF4y2Ba.的大小gydF4y2Ba权重gydF4y2Ba必须等于行数gydF4y2BaXgydF4y2Ba或gydF4y2Ba资源描述gydF4y2Ba.gydF4y2Ba

如果将输入数据指定为表gydF4y2Ba资源描述gydF4y2Ba,然后gydF4y2Ba权重gydF4y2Ba可以是变量名中的gydF4y2Ba资源描述gydF4y2Ba它包含一个数值向量。在这种情况下,您必须指定gydF4y2Ba权重gydF4y2Ba作为字符向量或字符串标量。例如,如果权重向量gydF4y2BaWgydF4y2Ba存储在gydF4y2Ba资源描述。WgydF4y2Ba,然后指定为gydF4y2Ba' W 'gydF4y2Ba.gydF4y2Ba

fitcgamgydF4y2Ba将每个类中的权重归一化,使其加起来等于各自类的先验概率值。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

请注意gydF4y2Ba

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

交叉验证选择gydF4y2Ba

全部折叠gydF4y2Ba

标记来训练交叉验证的模型,指定为gydF4y2Ba“上”gydF4y2Ba或gydF4y2Ba“关闭”gydF4y2Ba.gydF4y2Ba

如果你指定gydF4y2Ba“上”gydF4y2Ba,然后该软件用10次折叠训练交叉验证的模型。gydF4y2Ba

方法重写此交叉验证设置gydF4y2Ba“CVPartition”gydF4y2Ba,gydF4y2Ba“坚持”gydF4y2Ba,gydF4y2Ba“KFold”gydF4y2Ba,或gydF4y2Ba“Leaveout”gydF4y2Ba名称-值参数。在创建交叉验证模型时,一次只能使用一个交叉验证名称-值参数。gydF4y2Ba

或者,在创建模型后通过传递交叉验证gydF4y2BaMdlgydF4y2Ba来gydF4y2BacrossvalgydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“Crossval”,“上”gydF4y2Ba

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

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

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

用于拒绝验证的数据的百分比,指定为范围(0,1)中的标量值。如果你指定gydF4y2Ba‘坚持’,pgydF4y2Ba,然后软件完成以下步骤:gydF4y2Ba

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

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

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

例子:gydF4y2Ba“坚持”,0.1gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

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

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

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

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

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

例子:gydF4y2Ba“KFold”,5gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

省略一个交叉验证标志,指定为gydF4y2Ba“上”gydF4y2Ba或gydF4y2Ba“关闭”gydF4y2Ba.如果你指定gydF4y2Ba“Leaveout”,“上”gydF4y2Ba,然后对每个的gydF4y2BangydF4y2Ba观察(gydF4y2BangydF4y2Ba(不包括遗漏的观测数据)的观测数据数目是否已列明gydF4y2BaNumObservationsgydF4y2Ba属性的模型),软件完成这些步骤:gydF4y2Ba

  1. 保留一个观察数据作为验证数据,并使用另一个数据训练模型gydF4y2BangydF4y2Ba- 1次观察。gydF4y2Ba

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

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

例子:gydF4y2Ba“Leaveout”,“上”gydF4y2Ba

超参数优化选项gydF4y2Ba

全部折叠gydF4y2Ba

要优化的参数,指定为以下值之一:gydF4y2Ba

  • “没有”gydF4y2Ba-不要优化。gydF4y2Ba

  • “汽车”gydF4y2Ba——优化gydF4y2BaInitialLearnRateForPredictorsgydF4y2Ba,gydF4y2BaNumTreesPerPredictorgydF4y2Ba,gydF4y2Ba的相互作用gydF4y2Ba,gydF4y2BaInitialLearnRateForInteractionsgydF4y2Ba,gydF4y2BaNumTreesPerInteractiongydF4y2Ba.gydF4y2Ba

  • “auto-univariate”gydF4y2Ba——优化gydF4y2BaInitialLearnRateForPredictorsgydF4y2Ba而且gydF4y2BaNumTreesPerPredictorgydF4y2Ba.gydF4y2Ba

  • “auto-bivariate”gydF4y2Ba——优化gydF4y2Ba的相互作用gydF4y2Ba,gydF4y2BaInitialLearnRateForInteractionsgydF4y2Ba,gydF4y2BaNumTreesPerInteractiongydF4y2Ba.gydF4y2Ba

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

  • “all-univariate”gydF4y2Ba优化所有符合条件的单变量参数。gydF4y2Ba

  • “all-bivariate”gydF4y2Ba-优化所有符合条件的双变量参数。gydF4y2Ba

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

  • 向量的gydF4y2BaoptimizableVariablegydF4y2Ba对象的输出gydF4y2BahyperparametersgydF4y2Ba.gydF4y2Ba

符合条件的参数gydF4y2BafitcgamgydF4y2Ba是:gydF4y2Ba

  • 单变量hyperparametersgydF4y2Ba

    • InitialLearnRateForPredictorsgydF4y2Ba- - - - - -gydF4y2BafitcgamgydF4y2Ba在实值之间搜索,在范围内按对数缩放gydF4y2Ba(1 e - 3, 1)gydF4y2Ba.gydF4y2Ba

    • MaxNumSplitsPerPredictorgydF4y2Ba- - - - - -gydF4y2BafitcgamgydF4y2Ba搜索范围内的整数gydF4y2Ba[1, maxNumSplits]gydF4y2Ba,在那里gydF4y2BamaxNumSplitsgydF4y2Ba是gydF4y2BaNumObservations-1 30 min (max (2))gydF4y2Ba.gydF4y2BaNumObservationsgydF4y2Ba不包括缺失观测值的观测值数是否存储在gydF4y2BaNumObservationsgydF4y2Ba返回模型的属性gydF4y2BaMdlgydF4y2Ba.gydF4y2Ba

    • NumTreesPerPredictorgydF4y2Ba- - - - - -gydF4y2BafitcgamgydF4y2Ba在整数之间搜索,在范围内按对数缩放gydF4y2Ba[10500]gydF4y2Ba.gydF4y2Ba

  • 二元hyperparametersgydF4y2Ba

    • 的相互作用gydF4y2Ba- - - - - -gydF4y2BafitcgamgydF4y2Ba在整数之间搜索,在范围内按对数缩放gydF4y2Ba[0, MaxNumInteractions]gydF4y2Bat,gydF4y2BaMaxNumInteractionsgydF4y2Ba是gydF4y2BaNumPredictors*(NumPredictors - 1)/2gydF4y2Ba,gydF4y2BaNumPredictorsgydF4y2Ba用于训练模型的预测器的数量。gydF4y2Ba

    • InitialLearnRateForInteractionsgydF4y2Ba- - - - - -gydF4y2BafitcgamgydF4y2Ba在实值之间搜索,在范围内按对数缩放gydF4y2Ba(1 e - 3, 1)gydF4y2Ba.gydF4y2Ba

    • MaxNumSplitsPerInteractiongydF4y2Ba- - - - - -gydF4y2BafitcgamgydF4y2Ba搜索范围内的整数gydF4y2Ba[1, maxNumSplits]gydF4y2Ba.gydF4y2Ba

    • NumTreesPerInteractiongydF4y2Ba- - - - - -gydF4y2BafitcgamgydF4y2Ba在整数之间搜索,在范围内按对数缩放gydF4y2Ba[10500]gydF4y2Ba.gydF4y2Ba

使用gydF4y2Ba“汽车”gydF4y2Ba或gydF4y2Ba“所有”gydF4y2Ba寻找单变量和双变量参数的最优超参数值。或者,您可以使用以下方法找到单变量参数的最佳值gydF4y2Ba“auto-univariate”gydF4y2Ba或gydF4y2Ba“all-univariate”gydF4y2Ba然后利用二元参数求最优值gydF4y2Ba“auto-bivariate”gydF4y2Ba或gydF4y2Ba“all-bivariate”gydF4y2Ba.有关示例,请参见gydF4y2Ba使用OptimizeHyperparameters优化GAMgydF4y2Ba而且gydF4y2Ba训练二元分类的广义加性模型gydF4y2Ba.gydF4y2Ba

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

请注意gydF4y2Ba

的价值gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba重写使用其他名称-值参数指定的任何值。例如,设置gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba来gydF4y2Ba“汽车”gydF4y2Ba原因gydF4y2BafitcgamgydF4y2Ba方法所对应的超参数gydF4y2Ba“汽车”gydF4y2Ba选项并忽略超参数的任何指定值。gydF4y2Ba

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

负载gydF4y2BafisheririsgydF4y2BaParams =超参数(gydF4y2Ba“fitcgam”gydF4y2Ba量,物种);参数(1)。Range = [1e-4,1e6];gydF4y2Ba

通过gydF4y2Ba参数个数gydF4y2Ba作为价值gydF4y2BaOptimizeHyperparametersgydF4y2Ba.gydF4y2Ba

默认情况下,迭代显示出现在命令行上,并根据优化中的超参数数量显示图形。对于优化和绘图,目标函数为误分类率。要控制迭代显示,请设置gydF4y2Ba详细的gydF4y2Ba字段gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba名称-值参数。为了控制情节,设置gydF4y2BaShowPlotsgydF4y2Ba字段gydF4y2Ba“HyperparameterOptimizationOptions”gydF4y2Ba名称-值参数。gydF4y2Ba

例子:gydF4y2Ba“OptimizeHyperparameters”、“汽车”gydF4y2Ba

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

字段名gydF4y2Ba 值gydF4y2Ba 默认的gydF4y2Ba
优化器gydF4y2Ba
  • “bayesopt”gydF4y2Ba-使用贝叶斯优化。在内部,此设置调用gydF4y2BabayesoptgydF4y2Ba.gydF4y2Ba

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

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

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

“bayesopt”gydF4y2Ba
AcquisitionFunctionNamegydF4y2Ba

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

  • “expected-improvement”gydF4y2Ba

  • “expected-improvement-plus”gydF4y2Ba

  • “expected-improvement-per-second”gydF4y2Ba

  • “lower-confidence-bound”gydF4y2Ba

  • “probability-of-improvement”gydF4y2Ba

名称包括的获取函数gydF4y2Ba每秒gydF4y2Ba不能产生可重复的结果,因为优化依赖于目标函数的运行时间。名称包括的获取函数gydF4y2Ba+gydF4y2Ba当他们过度开发一个区域时,修改他们的行为。详情请参见gydF4y2Ba采集函数类型gydF4y2Ba.gydF4y2Ba

“expected-improvement-per-second-plus”gydF4y2Ba
MaxObjectiveEvaluationsgydF4y2Ba 目标函数求值的最大个数。gydF4y2Ba 30.gydF4y2Ba为gydF4y2Ba“bayesopt”gydF4y2Ba而且gydF4y2Ba“randomsearch”gydF4y2Ba,而整个电网为gydF4y2Ba“gridsearch”gydF4y2Ba
MaxTimegydF4y2Ba

时间限制,指定为正实标量。时间限制以秒为单位,由gydF4y2Ba抽搐gydF4y2Ba而且gydF4y2BatocgydF4y2Ba.运行时间可以超过gydF4y2BaMaxTimegydF4y2Ba因为gydF4y2BaMaxTimegydF4y2Ba不中断函数求值。gydF4y2Ba

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

在命令行显示:gydF4y2Ba

  • 0gydF4y2Ba-无迭代显示gydF4y2Ba

  • 1gydF4y2Ba-迭代显示gydF4y2Ba

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

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

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

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

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

假gydF4y2Ba
使用以下三个选项中的一个即可。gydF4y2Ba
CVPartitiongydF4y2Ba 一个gydF4y2BacvpartitiongydF4y2Ba对象创建的gydF4y2BacvpartitiongydF4y2Ba “Kfold”,5gydF4y2Ba如果没有指定交叉验证字段gydF4y2Ba
坚持gydF4y2Ba 范围内的标量gydF4y2Ba(0,1)gydF4y2Ba表示抵抗分数gydF4y2Ba
KfoldgydF4y2Ba 大于1的整数gydF4y2Ba

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

数据类型:gydF4y2Ba结构体gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

训练过的广义加性模型,作为本表中的模型对象之一返回。gydF4y2Ba

模型对象gydF4y2Ba 训练模型对象的交叉验证选项gydF4y2Ba 使用模型对象对观测进行分类的方法gydF4y2Ba
ClassificationGAMgydF4y2Ba 没有一个gydF4y2Ba 使用gydF4y2Ba预测gydF4y2Ba对新观测结果进行分类,并加以利用gydF4y2BaresubPredictgydF4y2Ba对训练观察进行分类。gydF4y2Ba
ClassificationPartitionedGAMgydF4y2Ba 指定gydF4y2BaKFoldgydF4y2Ba,gydF4y2Ba坚持gydF4y2Ba,gydF4y2BaLeaveoutgydF4y2Ba,gydF4y2BaCrossValgydF4y2Ba,或gydF4y2BaCVPartitiongydF4y2Ba 使用gydF4y2BakfoldPredictgydF4y2Ba对观察结果进行分类gydF4y2BafitcgamgydF4y2Ba坚持训练。gydF4y2BakfoldPredictgydF4y2Ba通过使用在没有该观察的情况下训练的模型来预测每个观察的类别标签。gydF4y2Ba

引用gydF4y2BaMdlgydF4y2Ba,使用点表示法。例如,输入gydF4y2BaMdl。的相互作用gydF4y2Ba在命令窗口中显示交互项gydF4y2BaMdlgydF4y2Ba.gydF4y2Ba

更多关于gydF4y2Ba

全部折叠gydF4y2Ba

二元分类的广义可加性模型gydF4y2Ba

广义加法模型(GAM)是一种可解释的模型,它使用预测因子的单变量和双变量形状函数的和来解释类别得分(类别概率的logit)。gydF4y2Ba

fitcgamgydF4y2Ba使用增强树作为每个预测器的形状函数,并可选地,每对预测器;因此,该函数可以捕获预测器和响应变量之间的非线性关系。由于单个形状函数对预测(分类评分)的贡献被很好地分离,因此模型易于解释。gydF4y2Ba

标准的GAM为每个预测器使用一个单变量形状函数。gydF4y2Ba

ygydF4y2Ba ~gydF4y2Ba BgydF4y2Ba 我gydF4y2Ba ngydF4y2Ba ogydF4y2Ba 米gydF4y2Ba 我gydF4y2Ba 一个gydF4y2Ba lgydF4y2Ba (gydF4y2Ba ngydF4y2Ba ,gydF4y2Ba μgydF4y2Ba )gydF4y2Ba ggydF4y2Ba (gydF4y2Ba μgydF4y2Ba )gydF4y2Ba =gydF4y2Ba 日志gydF4y2Ba μgydF4y2Ba 1gydF4y2Ba −gydF4y2Ba μgydF4y2Ba =gydF4y2Ba cgydF4y2Ba +gydF4y2Ba fgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba xgydF4y2Ba 1gydF4y2Ba )gydF4y2Ba +gydF4y2Ba fgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba )gydF4y2Ba +gydF4y2Ba ⋯gydF4y2Ba +gydF4y2Ba fgydF4y2Ba pgydF4y2Ba (gydF4y2Ba xgydF4y2Ba pgydF4y2Ba )gydF4y2Ba ,gydF4y2Ba

在哪里gydF4y2BaygydF4y2Ba是一个响应变量,它遵循成功概率(正类概率)的二项分布。gydF4y2BaμgydF4y2Ba在gydF4y2BangydF4y2Ba观察。gydF4y2BaggydF4y2Ba(gydF4y2BaμgydF4y2Ba)gydF4y2Ba是logit链接函数,和gydF4y2BacgydF4y2Ba是一个截距(常数)项。gydF4y2BafgydF4y2Ba我gydF4y2Ba(gydF4y2BaxgydF4y2Ba我gydF4y2Ba的单变量形状函数gydF4y2Ba我gydF4y2Ba预测器,它是预测器线性项的增强树(预测器树)。gydF4y2Ba

通过向模型中添加重要交互项的二元形状函数,可以在模型中包含预测因子之间的交互。gydF4y2Ba

ggydF4y2Ba (gydF4y2Ba μgydF4y2Ba )gydF4y2Ba =gydF4y2Ba cgydF4y2Ba +gydF4y2Ba fgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba xgydF4y2Ba 1gydF4y2Ba )gydF4y2Ba +gydF4y2Ba fgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba xgydF4y2Ba 2gydF4y2Ba )gydF4y2Ba +gydF4y2Ba ⋯gydF4y2Ba +gydF4y2Ba fgydF4y2Ba pgydF4y2Ba (gydF4y2Ba xgydF4y2Ba pgydF4y2Ba )gydF4y2Ba +gydF4y2Ba ∑gydF4y2Ba 我gydF4y2Ba ,gydF4y2Ba jgydF4y2Ba ∈gydF4y2Ba {gydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba ⋯gydF4y2Ba ,gydF4y2Ba pgydF4y2Ba }gydF4y2Ba fgydF4y2Ba 我gydF4y2Ba jgydF4y2Ba (gydF4y2Ba xgydF4y2Ba 我gydF4y2Ba xgydF4y2Ba jgydF4y2Ba )gydF4y2Ba ,gydF4y2Ba

在哪里gydF4y2BafgydF4y2BaijgydF4y2Ba(gydF4y2BaxgydF4y2Ba我gydF4y2BaxgydF4y2BajgydF4y2Ba的二元形状函数gydF4y2Ba我gydF4y2Bath和gydF4y2BajgydF4y2Ba预测器,这是预测器的交互项的增强树(交互树)。gydF4y2Ba

fitcgamgydF4y2Ba的基础上查找重要的交互项gydF4y2BapgydF4y2Ba值的gydF4y2BaFgydF4y2Ba测试。详细信息请参见gydF4y2Ba交互项检测gydF4y2Ba.gydF4y2Ba

异常gydF4y2Ba

偏差是残差平方和的泛化。它衡量了与饱和模型相比的拟合优度。gydF4y2Ba

拟合模型的偏差是该模型与饱和模型对数似然差值的两倍:gydF4y2Ba

2(日志gydF4y2BalgydF4y2Ba- - - - - -日志gydF4y2BalgydF4y2Ba年代gydF4y2Ba),gydF4y2Ba

在哪里gydF4y2BalgydF4y2Ba而且gydF4y2BalgydF4y2Ba年代gydF4y2Ba分别为拟合模型和饱和模型的似然。饱和模型是具有您可以估计的最大参数数量的模型。gydF4y2Ba

fitcgamgydF4y2Ba使用偏差来衡量模型拟合的优度,并在每次迭代中找到一个降低偏差的学习率。指定gydF4y2Ba“详细”gydF4y2Ba设置为1或2,在命令窗口中显示偏差和学习率。gydF4y2Ba

算法gydF4y2Ba

全部折叠gydF4y2Ba

梯度增强算法gydF4y2Ba

fitcgamgydF4y2Ba使用梯度增强算法拟合广义加性模型(gydF4y2Ba自适应Logistic回归gydF4y2Ba).gydF4y2Ba

fitcgamgydF4y2Ba首先构建一组预测树(用于预测器的线性项的增强树),然后构建一组交互树(用于预测器的交互项的增强树)。提升算法最多迭代一次gydF4y2Ba“NumTreesPerPredictor”gydF4y2Ba预测树的次数,然后迭代最多gydF4y2Ba“NumTreesPerInteraction”gydF4y2Ba交互树的次数。gydF4y2Ba

对于每个增强迭代,gydF4y2BafitcgamgydF4y2Ba用初始学习率构建一组预测树gydF4y2Ba“InitialLearnRateForPredictors”gydF4y2Ba,或以初始学习速率构建一组交互树gydF4y2Ba“InitialLearnRateForInteractions”gydF4y2Ba.gydF4y2Ba

  • 在构建一组树时,该函数每次训练一棵树。它将一棵树与残差相匹配,残差是响应与之前生长的所有树的聚合预测之间的差值。为了控制学习速度的提高,该函数根据学习速率收缩树,然后将树添加到模型中并更新残差。gydF4y2Ba

    • 更新后的模型=当前模型+(学习率)·(新树)gydF4y2Ba

    • 更新残差=当前残差-(学习率)·(由新树解释的响应)gydF4y2Ba

  • 如果添加树集改善了模型拟合(即将拟合的偏差降低了一个大于容差的值),则gydF4y2BafitcgamgydF4y2Ba移动到下一个迭代。gydF4y2Ba

  • 否则,gydF4y2BafitcgamgydF4y2Ba将学习率减半,并将其用于更新模型和残差。该函数继续将学习率减半,直到找到一个提高模型拟合的速率。gydF4y2Ba

    • 如果函数在训练预测树时找不到这样的学习率,那么它将停止对线性项进行迭代,并开始对交互项进行迭代。gydF4y2Ba

    • 如果函数在训练交互树时找不到这样的学习率,则终止模型拟合。gydF4y2Ba

    项可以确定训练停止的原因gydF4y2BaReasonForTerminationgydF4y2Ba训练模型的属性。gydF4y2Ba

交互项检测gydF4y2Ba

对于每一对相互作用项gydF4y2BaxgydF4y2Ba我gydF4y2BaxgydF4y2BajgydF4y2Ba(指定的gydF4y2Ba公式gydF4y2Ba或gydF4y2Ba“互动”gydF4y2Ba),软件执行gydF4y2BaFgydF4y2Ba-test检验该术语是否具有统计学意义。gydF4y2Ba

为了加快这个过程,gydF4y2BafitcgamgydF4y2Ba将数值预测器放入最多8个等概率的箱子中。如果预测器的唯一值少于8个,则箱子的数量可以小于8个。的gydF4y2BaFgydF4y2Ba-test检查创建的bin的零假设gydF4y2BaxgydF4y2Ba我gydF4y2Ba而且gydF4y2BaxgydF4y2BajgydF4y2Ba具有相同的响应,而不是至少有一个箱子具有与其他箱子不同的响应值。一个小gydF4y2BapgydF4y2Ba-value表示差异显著,这意味着对应的交互项显著,因此加入该项可以提高模型拟合。gydF4y2Ba

fitcgamgydF4y2Ba使用术语whose构建一组交互树gydF4y2BapgydF4y2Ba-values不大于gydF4y2Ba“MaxPValue”gydF4y2Ba价值。您可以使用默认值gydF4y2Ba“MaxPValue”gydF4y2Ba价值gydF4y2Ba1gydF4y2Ba使用指定的所有术语构建交互树gydF4y2Ba公式gydF4y2Ba或gydF4y2Ba“互动”gydF4y2Ba.gydF4y2Ba

fitcgamgydF4y2Ba属性的重要性顺序将交互项添加到模型中gydF4y2BapgydF4y2Ba值。使用gydF4y2Ba的相互作用gydF4y2Ba属性,以检查添加到模型中的交互项的顺序。gydF4y2Ba

成本gydF4y2Ba,gydF4y2Ba之前gydF4y2Ba,gydF4y2Ba权重gydF4y2Ba

  • 如果您指定gydF4y2Ba成本gydF4y2Ba,gydF4y2Ba之前gydF4y2Ba,gydF4y2Ba权重gydF4y2Ba参数时,输出模型对象将指定的值存储在gydF4y2Ba成本gydF4y2Ba,gydF4y2Ba之前gydF4y2Ba,gydF4y2BaWgydF4y2Ba属性,分别。的gydF4y2Ba成本gydF4y2Ba属性存储用户指定的成本矩阵(gydF4y2BaCgydF4y2Ba)一如既往。的gydF4y2Ba之前gydF4y2Ba而且gydF4y2BaWgydF4y2Ba属性分别存储归一化后的先验概率和观测权重。详细信息请参见gydF4y2Ba错误分类成本矩阵,先验概率和观察权重gydF4y2Ba.gydF4y2Ba

  • 该软件使用gydF4y2Ba成本gydF4y2Ba属性用于预测,而不是训练。因此,gydF4y2Ba成本gydF4y2Ba不是只读的;您可以在创建训练过的模型后使用点表示法更改属性值。gydF4y2Ba

参考文献gydF4y2Ba

卢、尹、里奇·卡鲁阿纳和约翰内斯·格尔克。分类与回归的可解模型gydF4y2Ba第18届ACM SIGKDD知识发现和数据挖掘国际会议论文集(KDD ' 12)。gydF4y2Ba中国北京:ACM出版社,2012,页150-158。gydF4y2Ba

Lou, Yin, Rich Caruana, Johannes Gehrke和Giles Hooker。“精确可解模型与成对交互。”gydF4y2Ba第19届ACM SIGKDD知识发现和数据挖掘国际会议论文集gydF4y2Ba芝加哥,伊利诺伊州,美国:ACM出版社,2013,pp. 623-631。gydF4y2Ba

扩展功能gydF4y2Ba

版本历史gydF4y2Ba

R2021a中引入gydF4y2Ba