主要内容

addInteractions

向单变量广义可加模型(GAM)添加相互作用项

    描述

    例子

    updatedmdl.= addInteractions (MDL.的相互作用返回更新的型号updatedmdl.通过添加交互术语的相互作用到单变量的广义添加剂模型MDL..该模型MDL.必须仅包含预测器的线性术语。

    如果你想继续培训现有的条款MDL.,可以使用的简历函数。

    例子

    updatedmdl.= addInteractions (MDL.的相互作用名称,值使用一个或多个名称值参数指定其他选项。例如,“MaxPValue”,0.05指定只包含其的交互项p-Values不大于0.05。

    例子

    全部折叠

    训练一个单变量GAM,其中包含预测因子的线性项,然后使用addInteractions函数。

    加载carbig数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。

    负载carbig

    创建一个包含预测变量的表(加速位移马力, 和重量)和响应变量(英里/加仑).

    台=表(加速度、位移、马力、体重、MPG);

    训练一个单变量GAM,其中包含预测因子的线性项资源描述

    Mdl = fitrgam(资源描述,“英里”);

    将五个最重要的交互项添加到训练过的模型中。

    UpdatedMdl = addInteractions (Mdl 5);

    MDL.是一个单变量的游戏,而且updatedmdl.更新的GAM是否包含了所有的条款MDL.还有5个额外的相互作用项。中显示交互项updatedmdl.

    UpdatedMdl。的相互作用
    ans =5×22 3 1 2 3 4 1 4 1 3

    每一行的相互作用属性表示一个交互项,并包含相互作用项的预测器变量的列索引。你可以使用的相互作用属性检查模型中的交互项及其顺序fitrgam将它们添加到模型中。

    训练一个单变量GAM,其中包含预测因子的线性项,然后使用addInteractions函数。指定'maxpvalue'名称 - 值参数添加互动项p- 值不大于'maxpvalue'价值。

    载入费雪的虹膜数据集。创建一个表,其中包含对versicolor和virginica的观察。

    负载渔民第1 = strcmp(物种,'versicolor') | strcmp(物种,“virginica”);台= array2table(量(第1:)'variablenames',[“x1”“x2”“x3”“x4”]);tbl.y =物种(Inds,:);

    训练一个单变量GAM,其中包含预测因子的线性项资源描述

    Mdl = fitcgam(资源描述,'是');

    向训练过的模型添加重要的交互项MDL..指定“所有”的相互作用参数,并设置'maxpvalue'名称-值参数改为0.05。在所有可用的交互术语中,addInteractions识别那些p- 值不大于'maxpvalue'值并将它们添加到模型中。默认值'maxpvalue'是1,因此该函数将所有指定的交互术语添加到模型中。

    UpdatedMdl = addInteractions (Mdl,“所有”'maxpvalue', 0.05);UpdatedMdl。的相互作用
    ans =5×23 4 2 4 1 4 2 3 1 3

    MDL.是一个单变量的游戏,而且updatedmdl.更新的GAM是否包含了所有的条款MDL.还有5个额外的相互作用项。updatedmdl.包括六对可用交互项中的五对。

    输入参数

    全部折叠

    广义可加性模型,指定为ClassificationGAM或者RegressionGAM模型对象。

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

    • 交互项的数目,指定为非负整数-年代包含指定数量的重要交互项,根据p-条款的值。

    • 交互项的列表,指定为逻辑矩阵-年代包括由a指定的条款t——- - - - - -p逻辑矩阵,在哪里t是交互项的个数,和p为用于训练模型的预测器数量。例如,逻辑([1 1 0; 0 1 1])表示两对交互术语:一对第一和第二预测器,以及一对第二和第三预测器。

      如果addInteractions使用将输入变量的子集作为预测器,然后该函数仅使用子集索引预测器。也就是说,逻辑矩阵的列索引不计算响应和观察权重变量。索引也不计算该函数未使用的任何变量。

    • “所有”- - - - - -年代包括所有可能的相互作用术语,即p * (p - 1) / 2总条款数量。

    在相互作用项中年代,addInteractions功能标识那些p- 值不大于'maxpvalue'值并使用它们来构建一组交互树。使用默认值('maxpvalue',1)使用中的所有术语构建交互树年代

    数据类型:单身的||逻辑|字符|字符串

    名称-值参数

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

    例子:添加剂(MDL.,‘所有’,‘MaxPValue’,0.05,“详细”,1,' NumPrints ', 10)指定包含所有可用的交互术语p-value不大于0.05,并每10次迭代显示诊断消息。

    交互项梯度增强的初始学习率,指定为区间(0,1)内的数值标量。

    对于交互树的每次增强迭代,addInteractions从初始学习率开始拟合。对于分类,函数将学习速率减半,直到找到一个提高模型拟合的速率。对于回归,函数在整个训练过程中使用初始速率。

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

    有关梯度增强的更多细节,请参见梯度升压算法

    例子:'InitialLearnrateFor互动',0.1

    数据类型:单身的|

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

    例子:'maxnumsplitsperinteraction',5

    数据类型:单身的|

    最大p-Value用于检测交互术语,指定为间隔中的数字标量[0,1]。

    addInteractions首先找到候选集年代相互作用的项的相互作用价值。然后该函数标识其的交互术语p- 值不大于'maxpvalue'值并使用它们来构建一组交互树。

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

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

    例子:“MaxPValue”,0.05

    数据类型:单身的|

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

    如果您指定'verbose',1NumPrint, NumPrint,然后软件会显示诊断信息numPrint命令窗口中的迭代。

    默认值为Mdl.ModelParameters.NumPrint, 哪一个是NumPrint在创建GAM对象时指定的MDL.

    例子:“NumPrint”,500年

    数据类型:单身的|

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

    'numtreesperinteraction'值等价于预测器交互项的梯度增强迭代次数。对于每一个迭代,addInteractions向模型中添加一组交互树,每个交互项对应一棵树。要了解梯度增强算法,请看梯度升压算法

    您可以通过查看显示的诊断消息来确定拟合模型是否具有指定数量的树木“详细”是1或2,或通过检查原理模型的属性值MDL.

    例子:'numtreesperinteraction',500

    数据类型:单身的|

    详细级别,指定为01, 或者2.的verb值控制软件在命令窗口中显示的信息量。

    该表总结了可用的冗长级别选项。

    价值 描述
    0 该软件无显示信息。
    1 该软件每次显示诊断消息numPrint迭代,numPrint是个“NumPrint”价值。
    2 该软件在每次迭代时都显示诊断消息。

    诊断消息的每一行都显示了关于每次助推迭代的信息,并包括以下列:

    • 类型- 培训的树木类型,1D.(预测树木,或用于预测器的线性术语的树木)或2D.(用于预测器的交互条款,互动树木,或升级树木)

    • numtrees.-每个线性项或交互项的树的数量addInteractions到目前为止添加到模型

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

    • RelTol-模型预测的相对变化: y k - y k - 1 y k - y k - 1 / y k y k ,在那里 y k 是迭代时模型预测的列向量k

    • LearnRate- 用于当前迭代的学习率

    默认值为Mdl.ModelParameters.VerbosityLevel, 哪一个是verb在创建GAM对象时指定的MDL.

    例子:'verbose',1

    数据类型:单身的|

    输出参数

    全部折叠

    更新的广义可加模型,返回为ClassificationGAM或者RegressionGAM模型对象。updatedmdl.具有与输入模型相同的对象类型MDL.

    重写输入参数MDL.,指定的输出addInteractionsMDL.

    Mdl = addInteractions (Mdl、互动);

    更多关于

    全部折叠

    异常

    偏差是残差平方和的推广。它衡量的是与饱和模型相比的拟合优度。

    拟合模型的偏差是模型的loglikelipe和饱和模型之间的差异的两倍:

    2(日志l- 日志l年代),

    在哪里ll年代分别为拟合模型和饱和模型的似然数。饱和模型是指可以估计的参数数量最大的模型。

    addInteractions使用偏差来测量模型的良好健身,并找到减少每次迭代偏差的学习率。指定“详细”为1或2,在“命令窗口”中显示偏差和学习率。

    算法

    全部折叠

    梯度升压算法

    addInteractions通过使用梯度增强算法,将交互树集(用于预测器交互项的增强树)添加到单变量广义可加模型(最小二乘提振回归和自适应逻辑回归分类)。算法最多迭代一次'numtreesperinteraction'互动树的时间。

    对于每个增强迭代,addInteractions构建一组具有初始学习率的交互树'InitialLearnrateFor互动'

    • 在构建一组树时,该函数一次列举一棵树。它适合剩余树的树,这是响应(观察到的分类类别的回归或分数的响应值)之间的差异以及先前生长的所有树木的聚合预测。为了控制升级学习速度,该函数通过学习速率缩小树,然后将树添加到模型并更新残差。

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

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

    • 如果添加树集提高了模型的拟合(也就是说,将拟合的偏差降低了一个大于公差的值),则addInteractions移动到下一个迭代。

    • 否则,分类,addInteractions将学习率减半,并用它来更新模型和残差。该函数继续将学习速率减半,直到找到一个提高模型拟合的速率。如果函数找不到交互树的学习率,则终止模型拟合。对于回归,如果添加树集不能提高初始学习率的模型拟合,则函数终止模型拟合。

      你可以通过检查原理训练模型的性质。

    交互项检测

    对于每个成对的相互作用项xxj(指定的的相互作用)时,软件执行F-检验该术语是否具有统计学意义。

    加快这个过程,addInteractions将数值预测器归为最多8个等概率箱子。如果一个预测器只有少于8个唯一值,那么容器的数量可以小于8个。的F-test检查由xxj与相反的响应相反,至少一个垃圾箱与其他垃圾有不同的响应价值。一个小的p-value表示差异显著,说明对应的交互项显著,因此,包含该项可以提高模型拟合程度。

    addInteractions使用whose的术语构建一组交互树p- 值不大于'maxpvalue'价值。您可以使用默认值'maxpvalue'价值1使用由指定的所有条款构建交互树的相互作用

    addInteractions根据基于的重要性顺序为模型添加交互条款p- 值。使用的相互作用属性,以检查添加到模型中的交互项的顺序。

    介绍了R2021a