本例展示了如何训练具有最优参数的广义加性模型(GAM),以及如何评估训练后模型的预测性能。该示例首先查找单变量GAM的最佳参数值(线性项的参数),然后查找双变量GAM的值(交互项的参数)。此外,该示例还解释了如何通过检查术语对特定预测的局部影响和计算预测对预测器的部分依赖性来解释训练过的模型。
加载存储在中的1994年人口普查数据census1994.mat
.该数据集由来自美国人口普查局的人口统计数据组成,用来预测一个人的年收入是否超过5万美元。分类任务是根据人们的年龄、劳动阶层、教育程度、婚姻状况、种族等,拟合一个预测工资类别的模型。
负载census1994
census1994
包含训练数据集adultdata
和测试数据集成人
.为减少此示例的运行时间,可以使用datasample
函数。
rng (“默认”) NumSamples = 5e2;adultdata = datasample (adultdata NumSamples,“替换”、假);成人= datasample(成人、NumSamples“替换”、假);
在交叉验证方面优化单变量GAM的参数bayesopt
函数。
准备optimizableVariable
对象为单变量GAM的名称-值参数:MaxNumSplitsPerPredictor
,NumTreesPerPredictor
,InitialLearnRateForPredictors
.
maxNumSplitsPerPredictor = optimizableVariable (“maxNumSplitsPerPredictor”(1, 10),“类型”,“整数”);numTreesPerPredictor = optimizableVariable (“numTreesPerPredictor”[1500],“类型”,“整数”);initialLearnRateForPredictors = optimizableVariable (“initialLearnRateForPredictors”(1 e - 3, 1),“类型”,“真实”的);
创建一个接受输入的目标函数z = [maxNumSplitsPerPredictor numTreesPerPredictor initialLearnRateForPredictors]
的参数处返回交叉验证的损失值z
.
minfun1 = @ (z) kfoldLoss (fitcgam (adultdata,“工资”,“重量”,“fnlwgt”,...“CrossVal”,“上”,...“InitialLearnRateForPredictors”z.initialLearnRateForPredictors,...“MaxNumSplitsPerPredictor”z.maxNumSplitsPerPredictor,...“NumTreesPerPredictor”z.numTreesPerPredictor));
如果指定交叉验证选项“CrossVal”,“上”
,那么fitcgam
函数返回一个交叉验证的模型对象ClassificationPartitionedGAM
.的kfoldLoss
函数返回由交叉验证模型获得的分类损失。因此,函数句柄minfun
中的参数处计算交叉验证损失z
.
搜索最佳参数使用bayesopt
.对于再现性,请选择“expected-improvement-plus”
采集功能。默认的采集函数取决于运行时,因此可以给出不同的结果。
其中回答= bayesopt (minfun1,...[initialLearnRateForPredictors, maxNumSplitsPerPredictor numTreesPerPredictor),...“IsObjectiveDeterministic”,真的,...“AcquisitionFunctionName”,“expected-improvement-plus”);
|====================================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | initialLearn - | maxNumSplits - | numTreesPerP——| | |结果| | |运行时(观察)| (estim) | RateForPredi | PerPredictor | redictor | |====================================================================================================================| | 最好1 | | 0.18549 | 5.6957 | 0.18549 | 0.18549 | 0.73503 | 7|99 | | 2 | Accept | 0.19145 | 20.383 | 0.18549 | 0.18549 | 0.72917 | 10 | 399 | | 3 | Best | 0.17703 | 13.412 | 0.17703 | 0.17703 | 0.079299 | 8 | 267 | | 4 | Best | 0.14955 | 0.402 | 0.14955 | 0.14955 | 0.24236 | 4 | 3 | | 5 | Accept | 0.15999 | 12.363 | 0.14955 | 0.14955 | 0.25509 | 1 | 377 | | 6 | Accept | 0.15158 | 1.5035 | 0.14955 | 0.14955 | 0.23051 | 7 | 29 | | 7 | Accept | 0.16181 | 0.18204 | 0.14955 | 0.14955 | 0.34396 | 4 | 1 | | 8 | Accept | 0.15079 | 0.38418 | 0.14955 | 0.14955 | 0.26669 | 10 | 5 | | 9 | Accept | 0.16102 | 0.55525 | 0.14955 | 0.14955 | 0.26065 | 2 | 10 | | 10 | Accept | 0.19259 | 8.6487 | 0.14955 | 0.14955 | 0.24894 | 10 | 182 | | 11 | Accept | 0.18628 | 0.20681 | 0.14955 | 0.14955 | 0.13389 | 6 | 2 | | 12 | Accept | 0.15653 | 0.24643 | 0.14955 | 0.14955 | 0.24172 | 10 | 2 | | 13 | Best | 0.14699 | 0.82743 | 0.14699 | 0.14699 | 0.26745 | 7 | 12 | | 14 | Best | 0.14634 | 0.47528 | 0.14634 | 0.14634 | 0.25025 | 6 | 6 | | 15 | Best | 0.14312 | 0.34493 | 0.14312 | 0.14312 | 0.30452 | 9 | 3 | | 16 | Accept | 0.14334 | 0.51583 | 0.14312 | 0.14312 | 0.33507 | 10 | 7 | | 17 | Best | 0.13791 | 0.32248 | 0.13791 | 0.13791 | 0.33179 | 9 | 4 | | 18 | Accept | 0.14875 | 0.3551 | 0.13791 | 0.13791 | 0.36806 | 8 | 5 | | 19 | Accept | 0.1651 | 1.3731 | 0.13791 | 0.13791 | 0.32691 | 8 | 27 | | 20 | Accept | 0.15895 | 0.37324 | 0.13791 | 0.13791 | 0.32985 | 7 | 5 | |====================================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | initialLearn-| maxNumSplits-| numTreesPerP-| | | result | | runtime | (observed) | (estim.) | RateForPredi | PerPredictor | redictor | |====================================================================================================================| | 21 | Accept | 0.13946 | 0.26793 | 0.13791 | 0.13791 | 0.36721 | 9 | 3 | | 22 | Accept | 0.16719 | 1.1276 | 0.13791 | 0.13791 | 0.25385 | 5 | 23 | | 23 | Accept | 0.17017 | 1.35 | 0.13791 | 0.13791 | 0.23809 | 9 | 26 | | 24 | Accept | 0.15519 | 0.46246 | 0.13791 | 0.13791 | 0.34831 | 9 | 7 | | 25 | Accept | 0.15312 | 0.26445 | 0.13791 | 0.13791 | 0.33416 | 10 | 3 | | 26 | Accept | 0.15852 | 0.31045 | 0.13791 | 0.13791 | 0.6142 | 9 | 4 | | 27 | Accept | 0.16691 | 0.50559 | 0.13791 | 0.13791 | 0.31446 | 5 | 7 | | 28 | Accept | 0.14384 | 0.35136 | 0.13791 | 0.13791 | 0.40215 | 9 | 4 | | 29 | Accept | 0.14773 | 0.33296 | 0.13791 | 0.13791 | 0.34255 | 9 | 4 | | 30 | Accept | 0.17604 | 0.85847 | 0.13791 | 0.13791 | 0.36565 | 6 | 15 |
__________________________________________________________ 优化完成。最大目标:达到30。总函数评估:30总运行时间:97.6656秒总目标函数评估时间:74.4022最佳观察可行点:initialLearnRateForPredictors maxNumSplitsPerPredictor numTreesPerPredictor _____________________________ ________________________ ____________________ 0.33179 9 4观察目标函数值= 0.13791估计目标函数值= 0.13791函数评估时间= 0.32248最佳估计可行点(根据模型):initialLearnRateForPredictors maxNumSplitsPerPredictor numTreesPerPredictor _____________________________ ________________________ ____________________ 0.33179 9 4估计目标函数值= 0.13791估计时间评估函数= 0.33084
获得最佳点其中回答
.
zbest1 = bestPoint(其中回答)
zbest1 =1×3表initialLearnRateForPredictors maxNumSplitsPerPredictor numTreesPerPredictor _____________________________ ________________________ ____________________ 0.33179 9 4
训练一个优化的GAM使用zbest1
值。推荐的做法是指定类名。
Mdl1 = fitcgam (adultdata,“工资”,“重量”,“fnlwgt”,...“类名”分类({“< = 50 k”,' > 50 k '}),...“InitialLearnRateForPredictors”zbest1.initialLearnRateForPredictors,...“MaxNumSplitsPerPredictor”zbest1.maxNumSplitsPerPredictor,...“NumTreesPerPredictor”zbest1.numTreesPerPredictor)
Mdl1 = ClassificationGAM PredictorNames: {'age' 'workClass' 'education' 'education_num' 'marital_status' 'occupation' 'relationship' 'race' 'sex' 'capital_gain' 'capital_loss' 'hours_per_week' 'native_country'} ResponseName: 'salary' CategoricalPredictors: [2 3 5 6 7 8 9 13] ClassNames: [<=50K >50K] ScoreTransform: 'logit' Intercept: -1.7383 NumObservations: 500 Properties, Methods
Mdl1
是一个ClassificationGAM
模型对象。模型显示显示了模型属性的部分列表。要查看模型属性的完整列表,双击变量名Mdl1
在工作区中。的变量编辑器打开Mdl1
.或者,您可以使用点表示法在命令窗口中显示属性。例如,显示ReasonForTermination
财产。
Mdl1。ReasonForTermination
ans =结构体字段:PredictorTrees: '在训练请求数量的树后终止。'InteractionTrees:“
的PredictorTrees
属性值的字段表示Mdl1
包括指定数量的树。NumTreesPerPredictor
的fitcgam
指定每个预测器的最大树数,函数可以在训练请求的树数之前停止。您可以使用ReasonForTermination
属性以确定训练的模型是否包含指定数量的树。
如果指定包含交互项,那么fitcgam
为他们训练树木,然后InteractionTrees
字段包含非空值。
方法求出二元GAM的相互作用项的参数bayesopt
函数。
准备optimizableVariable
对象用于交互术语的名称-值参数:InitialLearnRateForInteractions
,MaxNumSplitsPerInteraction
,NumTreesPerInteraction
,InitialLearnRateForInteractions
.
initialLearnRateForInteractions = optimizableVariable (“initialLearnRateForInteractions”(1 e - 3, 1),“类型”,“真实”的);maxNumSplitsPerInteraction = optimizableVariable (“maxNumSplitsPerInteraction”(1, 10),“类型”,“整数”);numTreesPerInteraction = optimizableVariable (“numTreesPerInteraction”[1500],“类型”,“整数”);numInteractions = optimizableVariable (“numInteractions”(1、28),“类型”,“整数”);
为优化创建一个目标函数。中使用最优参数值zbest1
从而使该软件能够根据交互项找到最优参数值zbest1
值。
minfun2 = @ (z) kfoldLoss (fitcgam (adultdata,“工资”,“重量”,“fnlwgt”,...“CrossVal”,“上”,...“InitialLearnRateForPredictors”zbest1.initialLearnRateForPredictors,...“MaxNumSplitsPerPredictor”zbest1.maxNumSplitsPerPredictor,...“NumTreesPerPredictor”zbest1.numTreesPerPredictor,...“InitialLearnRateForInteractions”z.initialLearnRateForInteractions,...“MaxNumSplitsPerInteraction”z.maxNumSplitsPerInteraction,...“NumTreesPerInteraction”z.numTreesPerInteraction,...“互动”z.numInteractions));
搜索最佳参数使用bayesopt
.优化过程训练多个模型,如果模型不包含交互项,则显示警告消息。调用前禁用所有警告bayesopt
并在运行后恢复警告状态bayesopt
.您可以保持警告状态不变,以查看警告消息。
orig_state =警告(“查询”);警告(“关闭”) results2 = bayesopt(minfun2,...[initialLearnRateForInteractions, maxNumSplitsPerInteraction numTreesPerInteraction, numInteractions],...“IsObjectiveDeterministic”,真的,...“AcquisitionFunctionName”,“expected-improvement-plus”);
|===================================================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | initialLearn - | maxNumSplits - | numTreesPerI - | numInteracti——| | |结果| | |运行时(观察)| (estim) | RateForInter | PerInteracti | nteraction |国家统计局 | |===================================================================================================================================| | 1 |最好的|0.19671 | 10.999 | 0.19671 | 0.19671 | 0.96444 | 8 | 109 | 22 | | 2 | Best | 0.189 | 30.57 | 0.189 | 0.189 | 0.98548 | 6 | 457 | 17 | | 3 | Best | 0.16538 | 18.643 | 0.16538 | 0.16538 | 0.28678 | 4 | 383 | 13 | | 4 | Best | 0.15243 | 0.4285 | 0.15243 | 0.15243 | 0.28044 | 1 | 45 | 3 | | 5 | Accept | 0.16065 | 0.69005 | 0.15243 | 0.15243 | 0.20151 | 7 | 60 | 1 | | 6 | Best | 0.14831 | 0.36629 | 0.14831 | 0.14831 | 0.032423 | 1 | 151 | 1 | | 7 | Accept | 0.14887 | 0.36443 | 0.14831 | 0.14831 | 0.021093 | 1 | 15 | 1 | | 8 | Accept | 0.15039 | 0.42139 | 0.14831 | 0.14831 | 0.012128 | 2 | 482 | 1 | | 9 | Best | 0.14787 | 0.42482 | 0.14787 | 0.14787 | 0.10119 | 1 | 121 | 6 | | 10 | Best | 0.13902 | 0.38822 | 0.13902 | 0.13902 | 0.1233 | 1 | 281 | 3 | | 11 | Accept | 0.14721 | 0.39532 | 0.13902 | 0.13902 | 0.065618 | 1 | 291 | 3 | | 12 | Accept | 0.14586 | 0.39205 | 0.13902 | 0.13902 | 0.18711 | 1 | 117 | 1 | | 13 | Accept | 0.15073 | 0.383 | 0.13902 | 0.13902 | 0.15072 | 1 | 15 | 3 | | 14 | Accept | 0.14966 | 0.42744 | 0.13902 | 0.13902 | 0.17155 | 1 | 497 | 4 | | 15 | Best | 0.13716 | 0.37599 | 0.13716 | 0.13716 | 0.12601 | 1 | 281 | 1 | | 16 | Accept | 0.15094 | 0.38197 | 0.13716 | 0.13716 | 0.13962 | 2 | 284 | 1 | | 17 | Accept | 0.13972 | 4.5994 | 0.13716 | 0.13716 | 0.0028545 | 5 | 481 | 2 | | 18 | Accept | 0.14788 | 31.639 | 0.13716 | 0.13716 | 0.0024433 | 6 | 489 | 15 | | 19 | Accept | 0.14565 | 1.276 | 0.13716 | 0.13716 | 0.013118 | 5 | 257 | 1 | | 20 | Accept | 0.16502 | 28.315 | 0.13716 | 0.13716 | 0.0063353 | 4 | 457 | 16 | |===================================================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | initialLearn-| maxNumSplits-| numTreesPerI-| numInteracti-| | | result | | runtime | (observed) | (estim.) | RateForInter | PerInteracti | nteraction | ons | |===================================================================================================================================| | 21 | Accept | 0.15693 | 4.9653 | 0.13716 | 0.13716 | 0.016486 | 6 | 466 | 2 | | 22 | Accept | 0.16312 | 29.942 | 0.13716 | 0.13716 | 0.019904 | 5 | 488 | 15 | | 23 | Accept | 0.15719 | 4.7423 | 0.13716 | 0.13716 | 0.020155 | 4 | 456 | 3 | | 24 | Best | 0.129 | 6.4419 | 0.129 | 0.129 | 0.090858 | 5 | 478 | 3 | | 25 | Accept | 0.15118 | 6.6757 | 0.129 | 0.129 | 0.15943 | 5 | 494 | 3 | | 26 | Accept | 0.15343 | 2.2035 | 0.129 | 0.129 | 0.070349 | 5 | 489 | 1 | | 27 | Best | 0.12879 | 6.8017 | 0.12879 | 0.12879 | 0.091985 | 5 | 387 | 4 | | 28 | Accept | 0.19093 | 5.9262 | 0.12879 | 0.12879 | 0.067405 | 5 | 331 | 4 | | 29 | Accept | 0.16767 | 6.3779 | 0.12879 | 0.12879 | 0.31419 | 5 | 472 | 3 | | 30 | Accept | 0.17636 | 11.026 | 0.12879 | 0.12879 | 0.054697 | 5 | 383 | 7 |
__________________________________________________________ 优化完成。最大目标:达到30。总功能评估:30总运行时间:239.1035秒总目标功能评估时间:216.5833最佳观测可行点:initialLearnRateForInteractions maxNumSplitsPerInteraction numTreesPerInteraction numInteractions _______________________________ __________________________ ______________________ _______________ 0.091985 5 387 4观测目标函数值= 0.12879估计目标函数值= 0.12879函数评估时间= 6.8017最佳估计可行点(根据模型):initialLearnRateForInteractions maxNumSplitsPerInteraction numTreesPerInteraction numInteractions _______________________________ __________________________ ______________________ _______________ 0.091985 5 387 4估计目标函数值= 0.12879估计时间评估函数= 6.7245
警告(orig_state)
获得最佳点results2
.
zbest2 = bestPoint (results2)
zbest2 =1×4表initialLearnRateForInteractions maxNumSplitsPerInteraction numTreesPerInteraction numInteractions _______________________________ __________________________ ______________________ _______________ 0.091985 5 387年4
训练一个优化的GAM使用zbest1
而且zbest2
值。
Mdl = fitcgam (adultdata,“工资”,“重量”,“fnlwgt”,...“类名”分类({“< = 50 k”,' > 50 k '}),...“InitialLearnRateForPredictors”zbest1.initialLearnRateForPredictors,...“MaxNumSplitsPerPredictor”zbest1.maxNumSplitsPerPredictor,...“NumTreesPerPredictor”zbest1.numTreesPerPredictor,...“InitialLearnRateForInteractions”zbest2.initialLearnRateForInteractions,...“MaxNumSplitsPerInteraction”zbest2.maxNumSplitsPerInteraction,...“NumTreesPerInteraction”zbest2.numTreesPerInteraction,...“互动”zbest2.numInteractions)
Mdl = ClassificationGAM PredictorNames: {'age' 'workClass' 'education' 'education_num' 'marital_status' 'occupation' 'relationship' 'race' 'sex' 'capital_gain' 'capital_loss' 'hours_per_week' 'native_country'} ResponseName: 'salary' CategoricalPredictors: [2 3 5 6 7 8 9 13] ClassNames: [<=50K >50K] ScoreTransform: 'logit' Intercept: -1.7755 Interactions: [4×2 double] NumObservations: 500 Properties, Methods
方法将交互项添加到单变量GAM中addInteractions
函数。
Mdl2 = addInteractions (Mdl1 zbest2.numInteractions,...“InitialLearnRateForInteractions”zbest2.initialLearnRateForInteractions,...“MaxNumSplitsPerInteraction”zbest2.maxNumSplitsPerInteraction,...“NumTreesPerInteraction”, zbest2.numTreesPerInteraction);
第二个输入参数指定交互项的最大数量NumTreesPerInteraction
名称-值参数指定每个交互术语的树的最大数量。的addInteractions
函数可以包含较少的交互项,并且在训练所需的树数之前停止。您可以使用的相互作用
而且ReasonForTermination
属性来检查经过训练的模型中交互项的实际数量和树的数量。
中显示交互项Mdl
.
Mdl。的相互作用
ans =4×27 10 4 7 7 9 5 10
每一行的的相互作用
表示一个交互项,并包含该交互项的预测变量的列索引。您可以使用的相互作用
属性来检查模型中的交互项及其顺序fitcgam
将它们添加到模型中。
中显示交互项Mdl
使用预测器名称。
Mdl.PredictorNames (Mdl.Interactions)
ans =4×2细胞{'relationship'} {'capital_gain'} {'education_num'} {'relationship'} {'relationship'} {'sex'} {'marital_status'}} {'capital_gain'}
显示终止原因,以确定模型是否包含每个线性项和每个交互项的指定树数。
Mdl。ReasonForTermination
ans =结构体字段:PredictorTrees: '在训练请求数量的树后终止。'InteractionTrees: '在训练请求数量的树后终止。'
通过使用测试样本来评估训练模型的性能成人
目标函数预测
,损失
,边缘
,保证金
.您可以使用带有这些功能的完整或紧凑模型。
如果你想评估训练数据集的性能,可以使用替换对象函数:resubPredict
,resubLoss
,resubMargin
,resubEdge
.要使用这些函数,必须使用包含训练数据的完整模型。
创建一个紧凑的模型,以减少训练过的模型的大小。
CMdl =紧凑(Mdl);谁(“Mdl”,“CMdl”)
名称大小字节类属性CMdl 1x1 3272176 classreg.learning.classif.CompactClassificationGAM Mdl 1x1 3389515 ClassificationGAM
预测测试数据集的标签和分数(成人
),并使用测试数据集计算模型统计信息(损耗、边际和边缘)。
(标签、分数)=预测(CMdl,成人);L =损失(CMdl,成人,“重量”, adulttest.fnlwgt);M =利润率(CMdl、成人);E =边缘(CMdl成人,“重量”, adulttest.fnlwgt);
预测标签和分数并计算统计数据,而不包括训练的模型中的交互项。
[labels_nointeraction, scores_nointeraction] =预测(CMdl,成人,“IncludeInteractions”、假);L_nointeractions =损失(CMdl,成人,“重量”adulttest.fnlwgt,“IncludeInteractions”、假);M_nointeractions =利润率(CMdl,成人,“IncludeInteractions”、假);E_nointeractions =边缘(CMdl,成人,“重量”adulttest.fnlwgt,“IncludeInteractions”、假);
将包含线性项和相互作用项的结果与只包含线性项的结果进行比较。
创建一个包含观察标签、预测标签和分数的表。显示表的前八行。
t =表(adulttest.salary、标签分数,labels_nointeraction scores_nointeraction,...“VariableNames”, {“真正的标签”,“预测标签”,“分数”...“没有交互作用的预测标签”,的分数没有相互作用的});头(t)
ans =8×5表真正的标签标签预测分数预测标签没有交互的分数没有交互 ___________ ________________ _____________________ _____________________________________ ___________________________ <= 50 k < = 50 k 0.97921 - 0.020787 0.98005 - 0.019951 < = 50 k < = 50 k < = 50 k 1 8.258 e-17 < = 50 k 0.9713 - 0.028696 < = 50 k < = 50 k 1 1.8297 e-19 < = 50 k 0.99449 - 0.0055054 < = 50 k < = 50 k 0.87422 - 0.12578 0.87729 - 0.12271 < = 50 k < = 50 k < = 50 k 1 3.5643 e-07 < = 50 k 0.99882 - 0.0011769 0.60371 - 0.39629 < = 50 k < = 50 k < = 50 k0.77861 0.22139 <= 50k > 50k 0.49917 0.50083 > 50k 0.46877 0.53123 > 50k > 50k 0.3109 0.6891 <= 50k 0.53571 0.46429
从真实的标签创建一个混淆表adulttest.salary
以及预测的标签。
tiledlayout(1、2);nexttile confusionchart (adulttest.salary、标签)标题(“线性和交互术语”nexttile (adulttest.salary,labels_nointeraction)“线性条件仅”)
显示计算损失和边缘值。
表([L;E]、[L_nointeractions;E_nointeractions),...“VariableNames”, {“线性和交互术语”,“只有线性条件”},...“RowNames”, {“损失”,“边缘”})
ans =2×2表线性和交互项只有线性项 ____________________________ _________________ 损失0.14868 - 0.13852 0.63926 - 0.58405
当只包含线性项时,模型的损失较小,而当同时包含线性项和交互项时,模型的边缘值较高。
使用框图显示边缘的分布。
图箱线图([M M_nointeractions),“标签”, {“线性和交互术语”,“线性条件仅”})标题(“测试样本裕度箱线图”)
解释第一次测试观测结果的预测plotLocalEffects
函数。此外,还为模型中的一些重要项创建偏依赖图plotPartialDependence
函数。
对第一次观察到的测试数据进行分类,并绘制出其中项的局部效应CMdl
在预测。若要在任何预测器名称中显示现有下划线,请更改TickLabelInterpreter
坐标轴的值“没有”
.
标签=预测(CMdl成人(1,:))
标签=分类< = 50 k
f1 =图;plotLocalEffects (CMdl成人(1:))f1.CurrentAxes。TickLabelInterpreter =“没有”;
的预测
函数对第一个观察结果进行分类:成人(1)
作为“< = 50 k”
.的plotLocalEffects
函数创建一个水平柱状图,显示10个最重要的术语对预测的局部影响。每个局部效应值显示了每个术语对分类分数的贡献“< = 50 k”
,即分类的后验概率的logit“< = 50 k”
的观察。
为该术语创建一个偏依赖图年龄
.指定训练和测试数据集,使用这两个数据集计算部分依赖值。
图plotPartialDependence (CMdl,“年龄”、标签、[adultdata;成人)
标线表示预测因子之间的平均部分关系年龄
和班级成绩< = 50 k
在训练过的模型中。的x
-轴小刻度表示预测器中的唯一值年龄
.
为这些项创建偏依赖图education_num
而且的关系
.
f2 =图;plotPartialDependence (CMdl [“education_num”,“关系”),标签,[adultdata;成人)f2.CurrentAxes。TickLabelInterpreter =“没有”;
这幅图显示了对education_num
,根据不同的的关系
价值。
bayesopt
|ClassificationGAM
|CompactClassificationGAM
|fitcgam
|optimizableVariable
|plotLocalEffects
|plotPartialDependence