广义可加性回归模型(GAM)gydF4y2Ba
一个gydF4y2BaRegressionGAMgydF4y2Ba
对象是gydF4y2Ba广义加性模型gydF4y2Ba(GAM)对象用于回归。它是一种可解释的模型,使用单变量和双变量形状函数的和来解释响应变量。gydF4y2Ba
方法可以预测对新观测结果的响应gydF4y2Ba预测gydF4y2Ba
函数,并绘制每个形状函数对观测的预测(响应值)的影响gydF4y2BaplotLocalEffectsgydF4y2Ba
函数。的对象函数的完整列表gydF4y2BaRegressionGAMgydF4y2Ba
,请参阅gydF4y2Ba对象的功能gydF4y2Ba.gydF4y2Ba
创建一个gydF4y2BaRegressionGAMgydF4y2Ba
对象,使用gydF4y2BafitrgamgydF4y2Ba
.您可以为预测器指定线性项和交互项,以便分别在训练的模型中包括单变量形状函数(预测树)和双变量形状函数(交互树)。gydF4y2Ba
您可以通过使用更新训练过的模型gydF4y2Ba重新开始gydF4y2Ba
或gydF4y2BaaddInteractionsgydF4y2Ba
.gydF4y2Ba
的gydF4y2Ba重新开始gydF4y2Ba
函数恢复对模型中现有项的训练。gydF4y2Ba
的gydF4y2BaaddInteractionsgydF4y2Ba
函数将交互项添加到仅包含线性项的模型中。gydF4y2Ba
BinEdgesgydF4y2Ba
- - - - - -gydF4y2Ba数值预测器的Bin边gydF4y2Ba[]gydF4y2Ba
此属性是只读的。gydF4y2Ba
的单元格数组指定的数值预测器的Bin边gydF4y2BapgydF4y2Ba数字向量,其中gydF4y2BapgydF4y2Ba是预测因子的数量。每个向量都包含数值预测器的bin边。类别预测器的单元格数组中的元素为空,因为软件不收纳类别预测器。gydF4y2Ba
类型时,软件才会对数值预测器进行分类gydF4y2Ba“NumBins”gydF4y2Ba
在使用树学习器训练模型时,名称-值参数作为正整数标量。的gydF4y2BaBinEdgesgydF4y2Ba
属性为空gydF4y2Ba“NumBins”gydF4y2Ba
值为空(默认值)。gydF4y2Ba
您可以重新生成已归档的预测器数据gydF4y2BaXbinnedgydF4y2Ba
通过使用gydF4y2BaBinEdgesgydF4y2Ba
训练模型的属性gydF4y2BamdlgydF4y2Ba
.gydF4y2Ba
X = mdl.X;%预测数据Xbinned = 0(大小(X));edges = mdl.BinEdges;查找已分类预测符的索引。idxNumeric = find(~cellfun(@isempty,edges));if iscolumn(idxNumeric) idxNumeric = idxNumeric';end for j = idxNumeric x = x (:,j);如果x是一个表,则将x转换为数组。If stable(x) x = table2array(x);将x分组到箱子中gydF4y2Ba离散化gydF4y2Ba
函数。Xbinned =离散化(x,[-inf;边缘{};正]);Xbinned(:,j) = Xbinned;结束gydF4y2Ba
XbinnedgydF4y2Ba
包含数值预测器的容器索引,范围从1到容器数。gydF4y2BaXbinnedgydF4y2Ba
类别预测器的值为0。如果gydF4y2BaXgydF4y2Ba
包含gydF4y2Ba南gydF4y2Ba
S,然后是对应的gydF4y2BaXbinnedgydF4y2Ba
值是gydF4y2Ba南gydF4y2Ba
年代。gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
的相互作用gydF4y2Ba
- - - - - -gydF4y2Ba交互项指标gydF4y2Ba[]gydF4y2Ba
此属性是只读的。gydF4y2Ba
交互项索引,指定为gydF4y2BatgydF4y2Ba
-by-2矩阵的正整数,其中gydF4y2BatgydF4y2Ba
是模型中交互项的数量。矩阵的每一行表示一个交互项,并包含预测器数据的列索引gydF4y2BaXgydF4y2Ba
对于相互作用项。如果模型不包括交互项,则此属性为空(gydF4y2Ba[]gydF4y2Ba
).gydF4y2Ba
软件将交互术语按重要性的顺序添加到模型中gydF4y2BapgydF4y2Ba值。使用此属性检查添加到模型中的交互项的顺序。gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
拦截gydF4y2Ba
- - - - - -gydF4y2Ba模型截距项gydF4y2Ba此属性是只读的。gydF4y2Ba
模型的截距(常数)项,它是预测树和交互树中截距项的和,指定为数值标量。gydF4y2Ba
数据类型:gydF4y2Ba单gydF4y2Ba
|gydF4y2Ba双gydF4y2Ba
IsStandardDeviationFitgydF4y2Ba
- - - - - -gydF4y2Ba标志,表示标准偏差模型是否适合gydF4y2Ba假gydF4y2Ba
|gydF4y2Ba真正的gydF4y2Ba
标志,指示响应变量的标准偏差的模型是否适合,指定为gydF4y2Ba假gydF4y2Ba
或gydF4y2Ba真正的gydF4y2Ba
.指定gydF4y2Ba“FitStandardDeviation”gydF4y2Ba
的名称-值参数gydF4y2BafitrgamgydF4y2Ba
作为gydF4y2Ba真正的gydF4y2Ba
拟合模型为标准差。gydF4y2Ba
如果gydF4y2BaIsStandardDeviationFitgydF4y2Ba
是gydF4y2Ba真正的gydF4y2Ba
,则可以在新的观测值或预测器值的训练观测值上计算标准差gydF4y2Ba预测gydF4y2Ba
或gydF4y2BaresubPredictgydF4y2Ba
,分别。这些函数还返回响应变量的预测区间,在给定的观测值下进行评估。gydF4y2Ba
数据类型:gydF4y2Ba逻辑gydF4y2Ba
ModelParametersgydF4y2Ba
- - - - - -gydF4y2Ba用于训练模型的参数gydF4y2Ba此属性是只读的。gydF4y2Ba
用于训练模型的参数,指定为模型参数对象。gydF4y2BaModelParametersgydF4y2Ba
包含用于训练模型的名称-值参数的参数值。gydF4y2BaModelParametersgydF4y2Ba
不包含估计参数。gydF4y2Ba
访问字段gydF4y2BaModelParametersgydF4y2Ba
用点表示法。例如,通过使用访问每个交互树的最大决策分割数量gydF4y2BaMdl.ModelParameters.MaxNumSplitsPerInteractiongydF4y2Ba
.gydF4y2Ba
PairDetectionBinEdgesgydF4y2Ba
- - - - - -gydF4y2BaBin边用于交互项检测gydF4y2Ba此属性是只读的。gydF4y2Ba
的单元格数组指定的数值预测器的交互项检测的Bin边gydF4y2BapgydF4y2Ba数字向量,其中gydF4y2BapgydF4y2Ba是预测因子的数量。每个向量都包含数值预测器的bin边。类别预测器的单元格数组中的元素为空,因为软件不收纳类别预测器。gydF4y2Ba
为了加快交互项检测过程,该软件将数值预测器最多分为8个等概率箱。如果预测器的唯一值少于8个,则箱子的数量可以小于8个。gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
ReasonForTerminationgydF4y2Ba
- - - - - -gydF4y2Ba停止训练的原因gydF4y2Ba此属性是只读的。gydF4y2Ba
训练模型停止的原因,指定为具有两个字段的结构,gydF4y2BaPredictorTreesgydF4y2Ba
而且gydF4y2BaInteractionTreesgydF4y2Ba
.gydF4y2Ba
使用此属性检查模型是否包含每个线性项的指定数量的树(gydF4y2Ba“NumTreesPerPredictor”gydF4y2Ba
),对于每个交互项(gydF4y2Ba“NumTreesPerInteraction”gydF4y2Ba
).如果gydF4y2BafitrgamgydF4y2Ba
函数在添加指定数量的树之前终止训练,此属性包含终止的原因。gydF4y2Ba
数据类型:gydF4y2Ba结构体gydF4y2Ba
CategoricalPredictorsgydF4y2Ba
- - - - - -gydF4y2Ba分类预测指标gydF4y2Ba[]gydF4y2Ba
此属性是只读的。gydF4y2Ba
分类预测指标,指定为正整数向量。gydF4y2BaCategoricalPredictorsgydF4y2Ba
包含指示相应预测符是分类的索引值。索引值在1和之间gydF4y2BapgydF4y2Ba
,在那里gydF4y2BapgydF4y2Ba
用于训练模型的预测器的数量。如果没有一个预测符是分类的,则此属性为空(gydF4y2Ba[]gydF4y2Ba
).gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
ExpandedPredictorNamesgydF4y2Ba
- - - - - -gydF4y2Ba扩展的预测器名称gydF4y2Ba此属性是只读的。gydF4y2Ba
扩展的预测器名称,指定为字符向量的单元格数组。gydF4y2Ba
ExpandedPredictorNamesgydF4y2Ba
和gydF4y2BaPredictorNamesgydF4y2Ba
对于广义加性模型。gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
NumObservationsgydF4y2Ba
- - - - - -gydF4y2Ba观察次数gydF4y2Ba此属性是只读的。gydF4y2Ba
在训练数据中存储的观察数gydF4y2BaXgydF4y2Ba
而且gydF4y2BaYgydF4y2Ba
,指定为数值标量。gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
PredictorNamesgydF4y2Ba
- - - - - -gydF4y2Ba预测变量名称gydF4y2Ba此属性是只读的。gydF4y2Ba
预测器变量名,指定为字符向量的单元格数组。元素的顺序gydF4y2BaPredictorNamesgydF4y2Ba
对应于预测器名称在训练数据中出现的顺序。gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
ResponseNamegydF4y2Ba
- - - - - -gydF4y2Ba响应变量名gydF4y2Ba此属性是只读的。gydF4y2Ba
响应变量名,指定为字符向量。gydF4y2Ba
数据类型:gydF4y2Ba字符gydF4y2Ba
ResponseTransformgydF4y2Ba
- - - - - -gydF4y2Ba响应变换函数gydF4y2Ba“没有”gydF4y2Ba
|gydF4y2Ba函数处理gydF4y2Ba响应转换函数,指定为gydF4y2Ba“没有”gydF4y2Ba
或者一个函数句柄。gydF4y2BaResponseTransformgydF4y2Ba
描述软件如何转换原始响应值。gydF4y2Ba
对于MATLABgydF4y2Ba®gydF4y2Ba函数或您定义的函数,输入其函数句柄。例如,输入gydF4y2BaMdl。ResponseTransform = @gydF4y2Ba函数gydF4y2Ba
,在那里gydF4y2Ba函数gydF4y2Ba
接受原始响应的数字向量,并返回包含已转换响应的相同大小的数字向量。gydF4y2Ba
数据类型:gydF4y2Ba字符gydF4y2Ba
|gydF4y2Bafunction_handlegydF4y2Ba
RowsUsedgydF4y2Ba
- - - - - -gydF4y2Ba拟合中使用的行gydF4y2Ba[]gydF4y2Ba
|gydF4y2Ba逻辑向量gydF4y2Ba此属性是只读的。gydF4y2Ba
用于拟合的原始训练数据行gydF4y2BaRegressionGAMgydF4y2Ba
模型,指定为逻辑向量。如果使用所有行,则此属性为空。gydF4y2Ba
数据类型:gydF4y2Ba逻辑gydF4y2Ba
WgydF4y2Ba
- - - - - -gydF4y2Ba观察权重gydF4y2Ba此属性是只读的。gydF4y2Ba
用于训练模型的观察权重,指定为gydF4y2BangydF4y2Ba-by-1数值向量。gydF4y2BangydF4y2Ba为观测数(gydF4y2BaNumObservationsgydF4y2Ba
).gydF4y2Ba
方法中指定的观测权值进行归一化gydF4y2Ba“重量”gydF4y2Ba
的元素gydF4y2BaWgydF4y2Ba
和等于1。gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
XgydF4y2Ba
- - - - - -gydF4y2Ba预测gydF4y2Ba此属性是只读的。gydF4y2Ba
用于训练模型的预测器,指定为数值矩阵或表格。gydF4y2Ba
每行gydF4y2BaXgydF4y2Ba
对应一个观察结果,每一列对应一个变量。gydF4y2Ba
数据类型:gydF4y2Ba单gydF4y2Ba
|gydF4y2Ba双gydF4y2Ba
|gydF4y2Ba表格gydF4y2Ba
YgydF4y2Ba
- - - - - -gydF4y2Ba响应gydF4y2Ba此属性是只读的。gydF4y2Ba
响应,指定为数值向量。gydF4y2Ba
每行gydF4y2BaYgydF4y2Ba
的对应行所观察到的响应gydF4y2BaXgydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba单gydF4y2Ba
|gydF4y2Ba双gydF4y2Ba
HyperparameterOptimizationResultsgydF4y2Ba
- - - - - -gydF4y2Ba超参数的交叉验证优化描述gydF4y2BaBayesianOptimizationgydF4y2Ba
对象gydF4y2Ba|gydF4y2Ba表格gydF4y2Ba此属性是只读的。gydF4y2Ba
超参数的交叉验证优化的描述,指定为gydF4y2BaBayesianOptimizationgydF4y2Ba
对象或超参数及相关值的表。属性时,此属性为非空gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba
的名称-值参数gydF4y2BafitrgamgydF4y2Ba
不是gydF4y2Ba“没有”gydF4y2Ba
(默认值)。的价值gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba
的设置gydF4y2Ba优化器gydF4y2Ba
在gydF4y2BaHyperparameterOptimizationOptionsgydF4y2Ba
的结构gydF4y2BafitrgamgydF4y2Ba
创建对象时。gydF4y2Ba
的价值gydF4y2Ba优化器gydF4y2Ba 场gydF4y2Ba |
的价值gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba |
---|---|
“bayesopt”gydF4y2Ba (默认)gydF4y2Ba |
类的对象gydF4y2BaBayesianOptimizationgydF4y2Ba |
“gridsearch”gydF4y2Ba 或gydF4y2Ba“randomsearch”gydF4y2Ba |
使用的超参数表,观察到的目标函数值(交叉验证损失),以及从最低(最好)到最高(最差)的观察值排序gydF4y2Ba |
CompactRegressionGAMgydF4y2Ba
紧凑的gydF4y2Ba |
减小机器学习模型的尺寸gydF4y2Ba |
RegressionPartitionedGAMgydF4y2Ba
crossvalgydF4y2Ba |
交叉验证机器学习模型gydF4y2Ba |
addInteractionsgydF4y2Ba |
在单变量广义可加性模型(GAM)中添加交互项gydF4y2Ba |
重新开始gydF4y2Ba |
广义加法模型(GAM)简历训练gydF4y2Ba |
石灰gydF4y2Ba |
局部可解释模型不可知解释(LIME)gydF4y2Ba |
partialDependencegydF4y2Ba |
计算部分依赖关系gydF4y2Ba |
plotLocalEffectsgydF4y2Ba |
广义可加性模型(GAM)中项的局部效应图gydF4y2Ba |
plotPartialDependencegydF4y2Ba |
创建部分依赖图(PDP)和个别条件期望图(ICE)gydF4y2Ba |
沙普利gydF4y2Ba |
沙普利值gydF4y2Ba |
预测gydF4y2Ba |
使用广义加法模型(GAM)预测响应gydF4y2Ba |
损失gydF4y2Ba |
广义加性模型(GAM)的回归损失gydF4y2Ba |
resubPredictgydF4y2Ba |
使用训练回归模型预测训练数据的响应gydF4y2Ba |
resubLossgydF4y2Ba |
再置换回归损失gydF4y2Ba |
训练一个单变量GAM,其中包含预测因子的线性项。方法解释指定数据实例的预测gydF4y2BaplotLocalEffectsgydF4y2Ba
函数。gydF4y2Ba
加载数据集gydF4y2BaNYCHousing2015gydF4y2Ba
.gydF4y2Ba
负载gydF4y2BaNYCHousing2015gydF4y2Ba
该数据集包括10个变量,其中包含2015年纽约市房产销售信息。本例使用这些变量来分析销售价格(gydF4y2BaSALEPRICEgydF4y2Ba
).gydF4y2Ba
预处理数据集。删除异常值,转换gydF4y2BadatetimegydF4y2Ba
阵列(gydF4y2BaSALEDATEgydF4y2Ba
)到月份数字,并移动响应变量(gydF4y2BaSALEPRICEgydF4y2Ba
)到最后一列。gydF4y2Ba
idx = isoutlier(nychousing2015 . salesprice);NYCHousing2015(idx,:) = [];NYCHousing2015。SALEDATE=month(NYCHousing2015.SALEDATE); NYCHousing2015 = movevars(NYCHousing2015,“SALEPRICE”gydF4y2Ba,gydF4y2Ba“后”gydF4y2Ba,gydF4y2Ba“SALEDATE”gydF4y2Ba);gydF4y2Ba
显示表的前三行。gydF4y2Ba
头(NYCHousing2015, 3)gydF4y2Ba
ans =gydF4y2Ba表3×10gydF4y2Ba区附近BUILDINGCLASSCATEGORY RESIDENTIALUNITS COMMERCIALUNITS LANDSQUAREFEET GROSSSQUAREFEET YEARBUILT SALEDATE SALEPRICE _______ ____________ ____________________________ ________________ _______________ ______________ _______________ _________ ________ _________ 2{‘BATHGATE}{01一个家庭住宅的}1 0 4750 2619 1899 8 0 2{‘BATHGATE}{01一个家庭住宅的}1 0 4750 2619 1899 8 0 2{‘BATHGATE}{01一个家庭住宅的}1 1 1287 2528 1899 12 0gydF4y2Ba
为销售价格训练一个单变量GAM。为gydF4y2Ba区gydF4y2Ba
,gydF4y2Ba社区gydF4y2Ba
,gydF4y2BaBUILDINGCLASSCATEGORYgydF4y2Ba
,gydF4y2BaSALEDATEgydF4y2Ba
作为分类预测因子。gydF4y2Ba
Mdl = fitrgam(NYCHousing2015;gydF4y2Ba“SALEPRICE”gydF4y2Ba,gydF4y2Ba“CategoricalPredictors”gydF4y2Ba,[1 2 3 9])gydF4y2Ba
Mdl = RegressionGAM PredictorNames: {1x9 cell} ResponseName: 'SALEPRICE'分类预测器:[1 2 3 9]ResponseTransform: 'none'拦截:3.7518e+05 IsStandardDeviationFit: 0 NumObservations: 83517属性,方法gydF4y2Ba
MdlgydF4y2Ba
是一个gydF4y2BaRegressionGAMgydF4y2Ba
模型对象。模型显示显示模型属性的部分列表。若要查看完整的属性列表,请双击变量名gydF4y2BaMdlgydF4y2Ba
在工作区中。打开变量编辑器gydF4y2BaMdlgydF4y2Ba
.或者,您可以使用点表示法在命令窗口中显示属性。例如,显示的估计截距(常数)项gydF4y2BaMdlgydF4y2Ba
.gydF4y2Ba
Mdl。拦截gydF4y2Ba
Ans = 3.7518e+05gydF4y2Ba
预测销售价格的第一个观察的训练数据,并绘制局部效应的条款gydF4y2BaMdlgydF4y2Ba
关于预测。gydF4y2Ba
yFit = predict(Mdl,NYCHousing2015(1,:)))gydF4y2Ba
yFit = 4.4421e+05gydF4y2Ba
: plotLocalEffects (Mdl NYCHousing2015 (1))gydF4y2Ba
的gydF4y2Ba预测gydF4y2Ba
函数预测第一个观测值的销售价格为gydF4y2Ba4.4421 e5gydF4y2Ba
.的gydF4y2BaplotLocalEffectsgydF4y2Ba
函数创建一个水平柱状图,显示项的局部效果gydF4y2BaMdlgydF4y2Ba
关于预测。每个局部效应值表示每一项对预测销售价格的贡献。gydF4y2Ba
用三种不同的方式训练一个包含预测因子线性和交互项的广义加法模型:gydF4y2Ba
属性指定交互术语gydF4y2Ba公式gydF4y2Ba
输入参数。gydF4y2Ba
指定gydF4y2Ba“互动”gydF4y2Ba
名称-值参数。gydF4y2Ba
方法先用线性项构建模型,并向模型中添加交互项gydF4y2BaaddInteractionsgydF4y2Ba
函数。gydF4y2Ba
加载gydF4y2BacarbiggydF4y2Ba
数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。gydF4y2Ba
负载gydF4y2BacarbiggydF4y2Ba
创建一个包含预测变量的表(gydF4y2Ba加速度gydF4y2Ba
,gydF4y2Ba位移gydF4y2Ba
,gydF4y2Ba马力gydF4y2Ba
,gydF4y2Ba重量gydF4y2Ba
)和响应变量(gydF4y2Ba英里/加仑gydF4y2Ba
).gydF4y2Ba
tbl = table(加速度,排量,马力,重量,MPG);gydF4y2Ba
指定gydF4y2Ba公式gydF4y2Ba
训练包含四个线性项的GAM (gydF4y2Ba加速度gydF4y2Ba
,gydF4y2Ba位移gydF4y2Ba
,gydF4y2Ba马力gydF4y2Ba
,gydF4y2Ba重量gydF4y2Ba
)和两个交互项(gydF4y2Ba*位移加速度gydF4y2Ba
而且gydF4y2Ba位移*马力gydF4y2Ba
).使用表单中的公式指定术语gydF4y2Ba“Y ~项”gydF4y2Ba
.gydF4y2Ba
Mdl1 = fitrgam(tbl,gydF4y2BaMPG ~加速度+排量+马力+重量+加速度:排量+排量:马力gydF4y2Ba);gydF4y2Ba
该函数按照重要性的顺序将交互项添加到模型中。您可以使用gydF4y2Ba的相互作用gydF4y2Ba
属性检查模型中的交互项及其顺序gydF4y2BafitrgamgydF4y2Ba
将它们添加到模型中。显示gydF4y2Ba的相互作用gydF4y2Ba
财产。gydF4y2Ba
Mdl1。的相互作用gydF4y2Ba
ans =gydF4y2Ba2×2gydF4y2Ba2 3 1 2gydF4y2Ba
每行gydF4y2Ba的相互作用gydF4y2Ba
表示一个交互项,并包含该交互项的预测变量的列索引。gydF4y2Ba
指定gydF4y2Ba“互动”gydF4y2Ba
传递培训数据(gydF4y2Ba资源描述gydF4y2Ba
)和响应变量的名称gydF4y2Ba资源描述gydF4y2Ba
来gydF4y2BafitrgamgydF4y2Ba
,使函数包含所有其他变量的线性项作为预测因子。指定gydF4y2Ba“互动”gydF4y2Ba
使用逻辑矩阵来包含两个交互项的名称-值参数,gydF4y2Bax1 * x2gydF4y2Ba
而且gydF4y2Bax2 * x3gydF4y2Ba
.gydF4y2Ba
Mdl2 = fitrgam(tbl,gydF4y2Ba“英里”gydF4y2Ba,gydF4y2Ba“互动”gydF4y2Ba,逻辑([1 1 0 0;0 1 1 0]));Mdl2。的相互作用gydF4y2Ba
ans =gydF4y2Ba2×2gydF4y2Ba2 3 1 2gydF4y2Ba
你也可以指定gydF4y2Ba“互动”gydF4y2Ba
作为相互作用项的数量或gydF4y2Ba“所有”gydF4y2Ba
包括所有可用的交互术语。在指定的交互条件中,gydF4y2BafitrgamgydF4y2Ba
识别那些gydF4y2BapgydF4y2Ba-values不大于gydF4y2Ba“MaxPValue”gydF4y2Ba
值并将它们添加到模型中。默认的gydF4y2Ba“MaxPValue”gydF4y2Ba
为1,以便函数将所有指定的交互项添加到模型中。gydF4y2Ba
指定gydF4y2Ba“互动”、“所有”gydF4y2Ba
并设置gydF4y2Ba“MaxPValue”gydF4y2Ba
名称-值参数为0.05。gydF4y2Ba
(tbl;gydF4y2Ba“英里”gydF4y2Ba,gydF4y2Ba“互动”gydF4y2Ba,gydF4y2Ba“所有”gydF4y2Ba,gydF4y2Ba“MaxPValue”gydF4y2Ba, 0.05);gydF4y2Ba
警告:模型不包括交互项,因为所有交互项的p值都大于“MaxPValue”值,或者软件无法改善模型拟合。gydF4y2Ba
Mdl3。的相互作用gydF4y2Ba
Ans = 0x2空双矩阵gydF4y2Ba
Mdl3gydF4y2Ba
不包括交互术语,这意味着以下之一:所有交互术语都有gydF4y2BapgydF4y2Ba-values大于0.05,或添加交互项并不能改善模型拟合。gydF4y2Ba
使用gydF4y2BaaddInteractionsgydF4y2Ba
函数gydF4y2Ba
训练一个包含预测因子线性项的单变量GAM,然后使用gydF4y2BaaddInteractionsgydF4y2Ba
函数。指定的第二个输入参数gydF4y2BaaddInteractionsgydF4y2Ba
以同样的方式指定gydF4y2Ba“互动”gydF4y2Ba
的名称-值参数gydF4y2BafitrgamgydF4y2Ba
.您可以使用逻辑矩阵指定交互术语的列表、交互术语的数量或gydF4y2Ba“所有”gydF4y2Ba
.gydF4y2Ba
指定交互项的数量为3,将三个最重要的交互项添加到训练的模型中。gydF4y2Ba
Mdl4 = fitrgam(tbl,gydF4y2Ba“英里”gydF4y2Ba);UpdatedMdl4 = addInteractions(Mdl4,3);UpdatedMdl4。的相互作用gydF4y2Ba
ans =gydF4y2Ba3×2gydF4y2Ba2 3 1 2 3 4gydF4y2Ba
Mdl4gydF4y2Ba
是单变量GAM,和gydF4y2BaUpdatedMdl4gydF4y2Ba
是一个更新的GAM,包含了所有的条款gydF4y2BaMdl4gydF4y2Ba
还有三个额外的相互作用项。gydF4y2Ba
训练一个包含线性项和交互项的回归GAM。指定为少量迭代训练交互术语。在训练交互项进行更多迭代之后,比较再替换损失。gydF4y2Ba
加载gydF4y2BacarbiggydF4y2Ba
数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。gydF4y2Ba
负载gydF4y2BacarbiggydF4y2Ba
指定gydF4y2Ba加速度gydF4y2Ba
,gydF4y2Ba位移gydF4y2Ba
,gydF4y2Ba马力gydF4y2Ba
,gydF4y2Ba重量gydF4y2Ba
作为预测变量(gydF4y2BaXgydF4y2Ba
),gydF4y2Ba英里/加仑gydF4y2Ba
作为响应变量(gydF4y2BaYgydF4y2Ba
).gydF4y2Ba
X =[加速度,排水量,马力,重量];Y = mpg;gydF4y2Ba
训练一个包含所有可用线性和交互项的GAMgydF4y2BaXgydF4y2Ba
.将每个交互术语的树数指定为2。gydF4y2BafitrgamgydF4y2Ba
对线性项迭代增强算法300次(默认值),并对交互项迭代算法指定的迭代次数。对于每次增强迭代,函数为每个线性项添加一个树,或为每个交互项添加一个树。指定gydF4y2Ba“详细”gydF4y2Ba
作为1,每10次迭代显示一次诊断消息。gydF4y2Ba
Mdl = fitrgam(X,Y,gydF4y2Ba“互动”gydF4y2Ba,gydF4y2Ba“所有”gydF4y2Ba,gydF4y2Ba“NumTreesPerInteraction”gydF4y2Ba2,gydF4y2Ba“详细”gydF4y2Ba1);gydF4y2Ba
|========================================================| | 类型| NumTrees |异常| RelTol | LearnRate | |========================================================| | 1 d | 0 | 2.4432 e + 05 | - | - | | 1 d | 1 | 9507.4 |正| 1 | | 1 d | 10 | 4470.6 | 0.00025206 | 1 | | 1 d | 20 | 3895.3 | 0.00011448 | 1 | | 1 d 30 | 3617.7 | 3.5365 | e-05 | 1 | | 1 d 40 | | 3402.5 | 3.7992 e-05 | 1 | | 1 d 50 | | 3257.1 | 2.4983 e-05 | 1 | | 1 d 60 | | 3131.8 | 2.3873 e-05 | 1 | | 1 d | 70 | 3019.8 | 2.2967 e-05 | 1 | | 1 d | 80 | 2925.9 | 2.8071 e-05 | 1 | | 1 d | 90 |2845.3 | 1.6811 e-05 | 1 | | 1 d | 100 | 2772.7 | 1.852 e-05 | 1 | | 1 d | 110 | 2707.8 | 1.6754 e-05 | 1 | | 1 d | 120 | 2649.8 | 1.651 e-05 | 1 | | 1 d | 130 | 2596.6 | 1.1723 e-05 | 1 | | 1 d | 140 | 2547.4 | 1.813 e-05 | 1 | | 1 d | 150 | 2501.1 | 1.8659 e-05 | 1 | | 1 d | 160 | 2455.7 | 1.386 e-05 | 1 | | 1 d | 170 | 2416.9 | 1.0615 e-05 | 1 | | 1 d | 180 | 2377.2 | 8.534 e-06 | 1 | | 1 d | 190 | 2339 | 7.6771 e-06 | 1 | | 1 d | 200 | 2303.3 | 9.5866 e-06 | 1 | | 1 d | 210 | 2270.7 | 8.4276 e-06 | 1 | | 1 d | 220 | 2240.1 | 8.5778 e-06 | 1 | | 1 d | 230 | 2209.2 | 9.6761 e-06 | 1 | | 1 |240 | 2178.7 | 7.0622 e-06 | 1 | | 1 d | 250 | 2150.3 | 8.3082 e-06 | 1 | | 1 d | 260 | 2122.3 | 7.9542 e-06 | 1 | | 1 d | 270 | 2097.7 | 7.6328 e-06 | 1 | | 1 d | 280 | 2070.4 | 9.4322 e-06 | 1 | | 1 d | 290 | 2044.3 | 7.5722 e-06 | 1 | | 1 d | 300 | 2019.7 | 6.6719 e-06 | 1 | |========================================================| | 类型| NumTrees |异常| RelTol | LearnRate | |========================================================| | 2 d | 0 | 2019.7 | - | - | | 2 d | 1 | 1795.5 | 0.0005975 | 1 | | 2 d | 2 | 1523.4 | 0.0010079 | 1 |gydF4y2Ba
检查是否gydF4y2BafitrgamgydF4y2Ba
火车指定数量的树,显示gydF4y2BaReasonForTerminationgydF4y2Ba
属性,并查看显示的消息。gydF4y2Ba
Mdl。ReasonForTerminationgydF4y2Ba
ans =gydF4y2Ba带字段的结构:gydF4y2BaPredictorTrees: '在训练了要求数量的树后终止。'InteractionTrees: '在训练所需数量的树后终止。'gydF4y2Ba
计算训练数据的回归损失。gydF4y2Ba
resubLoss (Mdl)gydF4y2Ba
Ans = 3.8277gydF4y2Ba
恢复对模型的训练,再进行100次迭代。因为gydF4y2BaMdlgydF4y2Ba
包含线性项和交互项gydF4y2Ba重新开始gydF4y2Ba
函数恢复交互项的训练,并为它们添加更多的树(交互树)。gydF4y2Ba
UpdatedMdl = resume(Mdl,100);gydF4y2Ba
|========================================================| | 类型| NumTrees |异常| RelTol | LearnRate | |========================================================| | 2 d | 0 | 1523.4 | - | - | | 2 d | 1 | 1363.9 | 0.00039695 | 1 | | 2 d 10 | 594.04 | 8.0295 | e-05 | 1 | | 2 d 20 | | 359.44 | 4.3201 e-05 | 1 | | 2 d 30 | 238.51 | 2.6869 | e-05 | 1 | | 2 d 40 | | 153.98 | 2.6271 e-05 | 1 | | 2 d 50 | | 91.464 | 8.0936 e-06 | 1 | | 2 d 60 | | 61.882 | 3.8528 e-06 | 1 | | 2 d | 70 | 43.206 | 5.9888 e-06 | 1 |gydF4y2Ba
UpdatedMdl。ReasonForTerminationgydF4y2Ba
ans =gydF4y2Ba带字段的结构:gydF4y2BaPredictorTrees: '在训练了要求数量的树后终止。'InteractionTrees:“无法改善模型拟合。”gydF4y2Ba
重新开始gydF4y2Ba
当添加更多的树时终止训练并不能改善模型拟合的偏差。gydF4y2Ba
使用更新后的模型计算回归损失。gydF4y2Ba
resubLoss (UpdatedMdl)gydF4y2Ba
Ans = 0.0944gydF4y2Ba
之后,回归损失减小gydF4y2Ba重新开始gydF4y2Ba
用更多的迭代更新模型。gydF4y2Ba
广义可加性模型(GAM)是一种可解释的模型,它使用预测因子的单变量和双变量形状函数的和来解释响应变量。gydF4y2Ba
fitrgamgydF4y2Ba
使用增强树作为每个预测器的形状函数,并可选地,每对预测器;因此,该函数可以捕获预测器和响应变量之间的非线性关系。由于各个形状函数对预测(响应值)的贡献被很好地分离,模型易于解释。gydF4y2Ba
标准的GAM为每个预测器使用一个单变量形状函数。gydF4y2Ba
在哪里gydF4y2BaygydF4y2Ba响应变量是否服从均值正态分布gydF4y2BaμgydF4y2Ba还有标准差gydF4y2BaσgydF4y2Ba.gydF4y2BaggydF4y2Ba(gydF4y2BaμgydF4y2Ba)gydF4y2Ba是恒等链接函数,和gydF4y2BacgydF4y2Ba是一个截距(常数)项。gydF4y2BafgydF4y2Ba我gydF4y2Ba(gydF4y2BaxgydF4y2Ba我gydF4y2Ba的单变量形状函数gydF4y2Ba我gydF4y2Ba预测器,它是预测器线性项的增强树(预测器树)。gydF4y2Ba
通过向模型中添加重要交互项的二元形状函数,可以在模型中包含预测因子之间的交互。gydF4y2Ba
在哪里gydF4y2BafgydF4y2BaijgydF4y2Ba(gydF4y2BaxgydF4y2Ba我gydF4y2BaxgydF4y2BajgydF4y2Ba的二元形状函数gydF4y2Ba我gydF4y2Bath和gydF4y2BajgydF4y2Ba预测器,这是预测器的交互项的增强树(交互树)。gydF4y2Ba
fitrgamgydF4y2Ba
的基础上查找重要的交互项gydF4y2BapgydF4y2Ba值的gydF4y2BaFgydF4y2Ba测试。详细信息请参见gydF4y2Ba交互项检测gydF4y2Ba.gydF4y2Ba
如果你指定gydF4y2Ba“FitStandardDeviation”gydF4y2Ba
的gydF4y2BafitrgamgydF4y2Ba
作为gydF4y2Ba假gydF4y2Ba
(默认)gydF4y2BafitrgamgydF4y2Ba
训练一个均值模型gydF4y2BaμgydF4y2Ba.如果你指定gydF4y2Ba“FitStandardDeviation”gydF4y2Ba
作为gydF4y2Ba真正的gydF4y2Ba
,然后gydF4y2BafitrgamgydF4y2Ba
为标准偏差训练一个额外的模型gydF4y2BaσgydF4y2Ba并设置gydF4y2BaIsStandardDeviationFitgydF4y2Ba
属性的GAM对象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
CompactRegressionGAMgydF4y2Ba
|gydF4y2BaRegressionPartitionedGAMgydF4y2Ba
|gydF4y2BafitrgamgydF4y2Ba
|gydF4y2Ba重新开始gydF4y2Ba
|gydF4y2BaaddInteractionsgydF4y2Ba
你点击了一个对应于这个MATLAB命令的链接:gydF4y2Ba
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝appgydF4y2Ba
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:gydF4y2Ba.gydF4y2Ba
选择gydF4y2Ba网站gydF4y2Ba您也可以从以下列表中选择一个网站:gydF4y2Ba
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。gydF4y2Ba