主要内容gydF4y2Ba

RegressionGAMgydF4y2Ba

广义可加性回归模型(GAM)gydF4y2Ba

    描述gydF4y2Ba

    一个gydF4y2BaRegressionGAMgydF4y2Ba对象是gydF4y2Ba广义加性模型gydF4y2Ba(GAM)对象用于回归。它是一种可解释的模型,使用单变量和双变量形状函数的和来解释响应变量。gydF4y2Ba

    方法可以预测对新观测结果的响应gydF4y2Ba预测gydF4y2Ba函数,并绘制每个形状函数对观测的预测(响应值)的影响gydF4y2BaplotLocalEffectsgydF4y2Ba函数。的对象函数的完整列表gydF4y2BaRegressionGAMgydF4y2Ba,请参阅gydF4y2Ba对象的功能gydF4y2Ba.gydF4y2Ba

    创建gydF4y2Ba

    创建一个gydF4y2BaRegressionGAMgydF4y2Ba对象,使用gydF4y2BafitrgamgydF4y2Ba.您可以为预测器指定线性项和交互项,以便分别在训练的模型中包括单变量形状函数(预测树)和双变量形状函数(交互树)。gydF4y2Ba

    您可以通过使用更新训练过的模型gydF4y2Ba重新开始gydF4y2Ba或gydF4y2BaaddInteractionsgydF4y2Ba.gydF4y2Ba

    • 的gydF4y2Ba重新开始gydF4y2Ba函数恢复对模型中现有项的训练。gydF4y2Ba

    • 的gydF4y2BaaddInteractionsgydF4y2Ba函数将交互项添加到仅包含线性项的模型中。gydF4y2Ba

    属性gydF4y2Ba

    全部展开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南gydF4y2BaS,然后是对应的gydF4y2BaXbinnedgydF4y2Ba值是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真正的gydF4y2Ba.指定gydF4y2Ba“FitStandardDeviation”gydF4y2Ba的名称-值参数gydF4y2BafitrgamgydF4y2Ba作为gydF4y2Ba真正的gydF4y2Ba拟合模型为标准差。gydF4y2Ba

    如果gydF4y2BaIsStandardDeviationFitgydF4y2Ba是gydF4y2Ba真正的gydF4y2Ba,则可以在新的观测值或预测器值的训练观测值上计算标准差gydF4y2Ba预测gydF4y2Ba或gydF4y2BaresubPredictgydF4y2Ba,分别。这些函数还返回响应变量的预测区间,在给定的观测值下进行评估。gydF4y2Ba

    数据类型:gydF4y2Ba逻辑gydF4y2Ba

    此属性是只读的。gydF4y2Ba

    用于训练模型的参数,指定为模型参数对象。gydF4y2BaModelParametersgydF4y2Ba包含用于训练模型的名称-值参数的参数值。gydF4y2BaModelParametersgydF4y2Ba不包含估计参数。gydF4y2Ba

    访问字段gydF4y2BaModelParametersgydF4y2Ba用点表示法。例如,通过使用访问每个交互树的最大决策分割数量gydF4y2BaMdl.ModelParameters.MaxNumSplitsPerInteractiongydF4y2Ba.gydF4y2Ba

    此属性是只读的。gydF4y2Ba

    的单元格数组指定的数值预测器的交互项检测的Bin边gydF4y2BapgydF4y2Ba数字向量,其中gydF4y2BapgydF4y2Ba是预测因子的数量。每个向量都包含数值预测器的bin边。类别预测器的单元格数组中的元素为空,因为软件不收纳类别预测器。gydF4y2Ba

    为了加快交互项检测过程,该软件将数值预测器最多分为8个等概率箱。如果预测器的唯一值少于8个,则箱子的数量可以小于8个。gydF4y2Ba

    数据类型:gydF4y2Ba细胞gydF4y2Ba

    此属性是只读的。gydF4y2Ba

    训练模型停止的原因,指定为具有两个字段的结构,gydF4y2BaPredictorTreesgydF4y2Ba而且gydF4y2BaInteractionTreesgydF4y2Ba.gydF4y2Ba

    使用此属性检查模型是否包含每个线性项的指定数量的树(gydF4y2Ba“NumTreesPerPredictor”gydF4y2Ba),对于每个交互项(gydF4y2Ba“NumTreesPerInteraction”gydF4y2Ba).如果gydF4y2BafitrgamgydF4y2Ba函数在添加指定数量的树之前终止训练,此属性包含终止的原因。gydF4y2Ba

    数据类型:gydF4y2Ba结构体gydF4y2Ba

    其他回归属性gydF4y2Ba

    此属性是只读的。gydF4y2Ba

    分类预测指标,指定为正整数向量。gydF4y2BaCategoricalPredictorsgydF4y2Ba包含指示相应预测符是分类的索引值。索引值在1和之间gydF4y2BapgydF4y2Ba,在那里gydF4y2BapgydF4y2Ba用于训练模型的预测器的数量。如果没有一个预测符是分类的,则此属性为空(gydF4y2Ba[]gydF4y2Ba).gydF4y2Ba

    数据类型:gydF4y2Ba双gydF4y2Ba

    此属性是只读的。gydF4y2Ba

    扩展的预测器名称,指定为字符向量的单元格数组。gydF4y2Ba

    ExpandedPredictorNamesgydF4y2Ba和gydF4y2BaPredictorNamesgydF4y2Ba对于广义加性模型。gydF4y2Ba

    数据类型:gydF4y2Ba细胞gydF4y2Ba

    此属性是只读的。gydF4y2Ba

    在训练数据中存储的观察数gydF4y2BaXgydF4y2Ba而且gydF4y2BaYgydF4y2Ba,指定为数值标量。gydF4y2Ba

    数据类型:gydF4y2Ba双gydF4y2Ba

    此属性是只读的。gydF4y2Ba

    预测器变量名,指定为字符向量的单元格数组。元素的顺序gydF4y2BaPredictorNamesgydF4y2Ba对应于预测器名称在训练数据中出现的顺序。gydF4y2Ba

    数据类型:gydF4y2Ba细胞gydF4y2Ba

    此属性是只读的。gydF4y2Ba

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

    数据类型:gydF4y2Ba字符gydF4y2Ba

    响应转换函数,指定为gydF4y2Ba“没有”gydF4y2Ba或者一个函数句柄。gydF4y2BaResponseTransformgydF4y2Ba描述软件如何转换原始响应值。gydF4y2Ba

    对于MATLABgydF4y2Ba®gydF4y2Ba函数或您定义的函数,输入其函数句柄。例如,输入gydF4y2BaMdl。ResponseTransform = @gydF4y2Ba函数gydF4y2Ba,在那里gydF4y2Ba函数gydF4y2Ba接受原始响应的数字向量,并返回包含已转换响应的相同大小的数字向量。gydF4y2Ba

    数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Bafunction_handlegydF4y2Ba

    此属性是只读的。gydF4y2Ba

    用于拟合的原始训练数据行gydF4y2BaRegressionGAMgydF4y2Ba模型,指定为逻辑向量。如果使用所有行,则此属性为空。gydF4y2Ba

    数据类型:gydF4y2Ba逻辑gydF4y2Ba

    此属性是只读的。gydF4y2Ba

    用于训练模型的观察权重,指定为gydF4y2BangydF4y2Ba-by-1数值向量。gydF4y2BangydF4y2Ba为观测数(gydF4y2BaNumObservationsgydF4y2Ba).gydF4y2Ba

    方法中指定的观测权值进行归一化gydF4y2Ba“重量”gydF4y2Ba的元素gydF4y2BaWgydF4y2Ba和等于1。gydF4y2Ba

    数据类型:gydF4y2Ba双gydF4y2Ba

    此属性是只读的。gydF4y2Ba

    用于训练模型的预测器,指定为数值矩阵或表格。gydF4y2Ba

    每行gydF4y2BaXgydF4y2Ba对应一个观察结果,每一列对应一个变量。gydF4y2Ba

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

    此属性是只读的。gydF4y2Ba

    响应,指定为数值向量。gydF4y2Ba

    每行gydF4y2BaYgydF4y2Ba的对应行所观察到的响应gydF4y2BaXgydF4y2Ba.gydF4y2Ba

    数据类型:gydF4y2Ba单gydF4y2Ba|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

    对象的功能gydF4y2Ba

    全部展开gydF4y2Ba

    紧凑的gydF4y2Ba 减小机器学习模型的尺寸gydF4y2Ba
    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

    例子gydF4y2Ba

    全部折叠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

    图中包含一个轴对象。标题为Local Effects Plot的axes对象包含一个类型为bar的对象。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

    更多关于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

    R2021a中引入gydF4y2Ba