主要内容gydF4y2Ba

RegressionPartitionedGAMgydF4y2Ba

旨在广义相加模型(GAM)回归gydF4y2Ba

自从R2021agydF4y2Ba

    描述gydF4y2Ba

    RegressionPartitionedGAMgydF4y2Ba是一组广义可加模型训练旨在折叠。估计的质量通过使用一个或多个旨在回归gydF4y2BakfoldgydF4y2Ba功能:gydF4y2BakfoldPredictgydF4y2Ba,gydF4y2BakfoldLossgydF4y2Ba,gydF4y2BakfoldfungydF4y2Ba。gydF4y2Ba

    每一个gydF4y2BakfoldgydF4y2Ba函数使用对象模型训练training-fold(的)观察预测响应validation-fold (out-of-fold)观察。例如,假设您旨在使用5折。软件随机分配每个观测分成五组同等大小的(大概)。的gydF4y2Ba培训褶皱gydF4y2Ba包含四个组的(约4/5的数据),以及gydF4y2Ba验证褶皱gydF4y2Ba包含其他组(约1/5的数据)。在这种情况下,交叉验证收益如下:gydF4y2Ba

    1. 软件培训(存储在第一个模型gydF4y2BaCVMdl.Trained {1}gydF4y2Ba)通过观察过去四组,和外汇储备第一组的观测验证。gydF4y2Ba

    2. 软件培训(存储在第二个模型gydF4y2BaCVMdl.Trained {2}gydF4y2Ba)通过观察第一组最后三组。软件保留在第二组观察验证。gydF4y2Ba

    3. 软件收入用在类似的方式是第三,第四,第五模型。gydF4y2Ba

    如果验证通过gydF4y2BakfoldPredictgydF4y2Ba对观察组,软件计算预测gydF4y2Ba我gydF4y2Ba通过使用gydF4y2Ba我gydF4y2Ba模型。简而言之,软件估计响应每个观察通过模型训练没有观察。gydF4y2Ba

    创建gydF4y2Ba

    您可以创建一个gydF4y2BaRegressionPartitionedGAMgydF4y2Ba模型在两个方面:gydF4y2Ba

    • 创建一个旨在从GAM模型对象gydF4y2BaRegressionGAMgydF4y2Ba通过使用gydF4y2BacrossvalgydF4y2Ba对象的功能。gydF4y2Ba

    • 创建一个旨在通过使用模型gydF4y2BafitrgamgydF4y2Ba功能和指定名称的参数之一gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“CVPartition”gydF4y2Ba,gydF4y2Ba“坚持”gydF4y2Ba,gydF4y2Ba“KFold”gydF4y2Ba,或gydF4y2Ba“Leaveout”gydF4y2Ba。gydF4y2Ba

    属性gydF4y2Ba

    全部展开gydF4y2Ba

    访问属性gydF4y2Ba

    标志指示是否响应的标准偏差变量模型,指定为gydF4y2Ba假gydF4y2Ba或gydF4y2Ba真正的gydF4y2Ba。指定gydF4y2Ba“FitStandardDeviation”gydF4y2Ba名称-值参数gydF4y2BafitrgamgydF4y2Ba作为gydF4y2Ba真正的gydF4y2Ba适合的模型标准差。gydF4y2Ba

    如果gydF4y2BaIsStandardDeviationFitgydF4y2Ba是gydF4y2Ba真正的gydF4y2Ba,那么你就可以评估预测数据的标准差gydF4y2BaXgydF4y2Ba通过使用gydF4y2BakfoldPredictgydF4y2Ba。这个函数也返回响应的预测区间变量,评估gydF4y2BaXgydF4y2Ba。gydF4y2Ba

    数据类型:gydF4y2Ba逻辑gydF4y2Ba

    交叉验证的属性gydF4y2Ba

    这个属性是只读的。gydF4y2Ba

    旨在模型名称,指定为gydF4y2Ba“社交”gydF4y2Ba。gydF4y2Ba

    这个属性是只读的。gydF4y2Ba

    旨在折叠,指定为一个正整数。gydF4y2Ba

    数据类型:gydF4y2Ba双gydF4y2Ba

    这个属性是只读的。gydF4y2Ba

    交叉验证参数值,指定为一个对象。参数值的对应名称的值参数广义相加模型旨在使用。gydF4y2BaModelParametersgydF4y2Ba不包含估计参数。gydF4y2Ba

    您可以访问的属性gydF4y2BaModelParametersgydF4y2Ba使用点符号。gydF4y2Ba

    这个属性是只读的。gydF4y2Ba

    数据分区显示软件将数据分为交叉验证折叠,如何指定为一个gydF4y2BacvpartitiongydF4y2Ba模型。gydF4y2Ba

    这个属性是只读的。gydF4y2Ba

    交叉验证折叠紧凑模型训练,指定的单元阵列gydF4y2BaCompactRegressionGAMgydF4y2Ba模型对象。gydF4y2Ba训练有素的gydF4y2Ba有gydF4y2BakgydF4y2Ba细胞,gydF4y2BakgydF4y2Ba是折叠的数量。gydF4y2Ba

    数据类型:gydF4y2Ba细胞gydF4y2Ba

    其他回归属性gydF4y2Ba

    这个属性是只读的。gydF4y2Ba

    分类预测指标,指定为一个向量的正整数。gydF4y2BaCategoricalPredictorsgydF4y2Ba包含索引值表明相应的预测分类。索引值介于1和gydF4y2BapgydF4y2Ba,在那里gydF4y2BapgydF4y2Ba预测的数量被用来训练模型。如果所有的预测都直言,那么这个属性是空的(gydF4y2Ba[]gydF4y2Ba)。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

    观察权重用来训练模型,指定为一个gydF4y2BangydF4y2Ba1数字向量。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

    kfoldPredictgydF4y2Ba 预测反应的观察旨在回归模型gydF4y2Ba
    kfoldLossgydF4y2Ba 损失旨在分区回归模型gydF4y2Ba
    kfoldfungydF4y2Ba 旨在为回归函数gydF4y2Ba

    例子gydF4y2Ba

    全部折叠gydF4y2Ba

    训练旨在GAM的10倍,这是默认的交叉验证选择,通过使用gydF4y2BafitrgamgydF4y2Ba。然后,用gydF4y2BakfoldPredictgydF4y2Ba为validation-fold观察使用一个模型来预测反应训练training-fold观测。gydF4y2Ba

    加载gydF4y2BacarbiggydF4y2Ba的数据集,其中包含测量汽车在1970年代末和1980年代初。gydF4y2Ba

    负载gydF4y2BacarbiggydF4y2Ba

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

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

    通过使用默认创建一个旨在GAM交叉验证选择。指定gydF4y2Ba“CrossVal”gydF4y2Ba名称-值参数为gydF4y2Ba“上”gydF4y2Ba。gydF4y2Ba

    rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaCVMdl = fitrgam(资源描述,gydF4y2Ba“英里”gydF4y2Ba,gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba)gydF4y2Ba
    CVMdl = RegressionPartitionedGAM CrossValidatedModel:“联欢”PredictorNames:{“加速度”“位移”“马力”“重量”}ResponseName:“英里”NumObservations: 398 KFold: 10个分区:[1 x1 cvpartition] NumTrainedPerFold: [1 x1 struct] ResponseTransform:“没有一个”IsStandardDeviationFit: 0属性,方法gydF4y2Ba

    的gydF4y2BafitrgamgydF4y2Ba函数创建一个gydF4y2BaRegressionPartitionedGAMgydF4y2Ba模型对象gydF4y2BaCVMdlgydF4y2Ba用10倍。在交叉验证,软件完成以下步骤:gydF4y2Ba

    1. 随机数据分割成十集。gydF4y2Ba

    2. 对于每一个集合,储备作为验证数据集,使用其他9集和训练模型。gydF4y2Ba

    3. 存储10紧凑,一分之一10-by-1细胞向量训练模型gydF4y2Ba训练有素的gydF4y2Ba旨在模型对象的属性gydF4y2BaRegressionPartitionedGAMgydF4y2Ba。gydF4y2Ba

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

    预测反应的观察gydF4y2Ba资源描述gydF4y2Ba通过使用gydF4y2BakfoldPredictgydF4y2Ba。函数预测响应每一个观察使用模型训练没有观察。gydF4y2Ba

    yHat = kfoldPredict (CVMdl);gydF4y2Ba

    yHatgydF4y2Ba是一个数值向量。显示前五预测反应。gydF4y2Ba

    yHat (1:5)gydF4y2Ba
    ans =gydF4y2Ba5×1gydF4y2Ba19.4848 15.7203 15.5742 15.3185 17.8223gydF4y2Ba

    计算回归损失(均方误差)。gydF4y2Ba

    L = kfoldLoss (CVMdl)gydF4y2Ba
    L = 17.7248gydF4y2Ba

    kfoldLossgydF4y2Ba返回平均均方误差超过10倍。gydF4y2Ba

    火车回归广义相加模型(GAM)通过使用gydF4y2BafitrgamgydF4y2Ba使用,并创建一个旨在GAMgydF4y2BacrossvalgydF4y2Ba和坚持的选择。然后,用gydF4y2BakfoldPredictgydF4y2Ba为validation-fold观察使用一个模型来预测反应训练training-fold观测。gydF4y2Ba

    加载gydF4y2Ba病人gydF4y2Ba数据集。gydF4y2Ba

    负载gydF4y2Ba病人gydF4y2Ba

    创建一个表,其中包含预测变量(gydF4y2Ba年龄gydF4y2Ba,gydF4y2Ba舒张压gydF4y2Ba,gydF4y2Ba吸烟者gydF4y2Ba,gydF4y2Ba重量gydF4y2Ba,gydF4y2Ba性别gydF4y2Ba,gydF4y2BaSelfAssessedHealthStatusgydF4y2Ba)和响应变量(gydF4y2Ba收缩压gydF4y2Ba)。gydF4y2Ba

    台=表(年龄、舒张压、吸烟、体重、性别、SelfAssessedHealthStatus,收缩期);gydF4y2Ba

    火车一个包含线性项GAM预测。gydF4y2Ba

    Mdl = fitrgam(资源描述,gydF4y2Ba“收缩”gydF4y2Ba);gydF4y2Ba

    MdlgydF4y2Ba是一个gydF4y2BaRegressionGAMgydF4y2Ba模型对象。gydF4y2Ba

    模型旨在通过指定一个抵抗样本的30%。gydF4y2Ba

    rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaCVMdl = crossval (Mdl,gydF4y2Ba“坚持”gydF4y2Ba,0.3)gydF4y2Ba
    CVMdl = RegressionPartitionedGAM CrossValidatedModel:“联欢”PredictorNames:{“年龄”“舒张期”“烟民”“重量”“性别”的SelfAssessedHealthStatus} CategoricalPredictors: [3 5 6] ResponseName:“收缩”NumObservations: 100 KFold: 1分区:[1 x1 cvpartition] NumTrainedPerFold: [1 x1 struct] ResponseTransform:“没有一个”IsStandardDeviationFit: 0属性,方法gydF4y2Ba

    的gydF4y2BacrossvalgydF4y2Ba函数创建一个gydF4y2BaRegressionPartitionedGAMgydF4y2Ba模型对象gydF4y2BaCVMdlgydF4y2Ba坚持选择。在交叉验证,软件完成以下步骤:gydF4y2Ba

    1. 随机选择和储备30%的数据作为验证数据,并培训使用其余的数据模型。gydF4y2Ba

    2. 在存储紧凑,训练模型gydF4y2Ba训练有素的gydF4y2Ba旨在模型对象的属性gydF4y2BaRegressionPartitionedGAMgydF4y2Ba。gydF4y2Ba

    你可以选择一个不同的交叉验证设置使用gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“CVPartition”gydF4y2Ba,gydF4y2Ba“KFold”gydF4y2Ba,或gydF4y2Ba“Leaveout”gydF4y2Ba名称-值参数。gydF4y2Ba

    validation-fold观察利用预测的反应gydF4y2BakfoldPredictgydF4y2Ba。validation-fold观测使用的预测响应函数模型训练training-fold观察。函数分配gydF4y2Ba南gydF4y2Batraining-fold观测。gydF4y2Ba

    yFit = kfoldPredict (CVMdl);gydF4y2Ba

    找到validation-fold观察指标,创建一个表包含观察指数,观察到的响应值,预测响应值。显示表的前八行。gydF4y2Ba

    idx =找到(~ isnan (yFit));t =表(idx tbl.Systolic (idx) yFit (idx),gydF4y2Ba…gydF4y2Ba“VariableNames”gydF4y2Ba,{gydF4y2Ba“Obseraction指数”gydF4y2Ba,gydF4y2Ba的观测值gydF4y2Ba,gydF4y2Ba的预测价值gydF4y2Ba});头(t)gydF4y2Ba
    Obseraction指数观测值预测价值售予_________________ * * * 1 124 130.22 121 124.38 130 125.26 123 116.99 115 117.05 125 121.82 22 23 114 107 24 128 122.52gydF4y2Ba

    计算回归误差(均方误差)validation-fold观察。gydF4y2Ba

    L = kfoldLoss (CVMdl)gydF4y2Ba
    L = 43.8715gydF4y2Ba

    训练旨在广义相加模型(GAM) 10倍。然后,用gydF4y2BakfoldLossgydF4y2Ba计算累积交叉验证回归损失(均方误差)。使用错误来确定最优数量的树木每预测(预测线性项)和最优数量的树/交互项。gydF4y2Ba

    或者,你可以找到的最优值gydF4y2BafitrgamgydF4y2Ba通过使用名称-值参数gydF4y2BaOptimizeHyperparametersgydF4y2Ba名称-值参数。例如,看到的gydF4y2Ba优化使用OptimizeHyperparameters联欢gydF4y2Ba。gydF4y2Ba

    加载gydF4y2Ba病人gydF4y2Ba数据集。gydF4y2Ba

    负载gydF4y2Ba病人gydF4y2Ba

    创建一个表,其中包含预测变量(gydF4y2Ba年龄gydF4y2Ba,gydF4y2Ba舒张压gydF4y2Ba,gydF4y2Ba吸烟者gydF4y2Ba,gydF4y2Ba重量gydF4y2Ba,gydF4y2Ba性别gydF4y2Ba,gydF4y2BaSelfAssessedHealthStatusgydF4y2Ba)和响应变量(gydF4y2Ba收缩压gydF4y2Ba)。gydF4y2Ba

    台=表(年龄、舒张压、吸烟、体重、性别、SelfAssessedHealthStatus,收缩期);gydF4y2Ba

    通过使用默认创建一个旨在GAM交叉验证选择。指定gydF4y2Ba“CrossVal”gydF4y2Ba名称-值参数为gydF4y2Ba“上”gydF4y2Ba。同时,指定包含5交互方面。gydF4y2Ba

    rng (gydF4y2Ba“默认”gydF4y2Ba)gydF4y2Ba%的再现性gydF4y2BaCVMdl = fitrgam(资源描述,gydF4y2Ba“收缩”gydF4y2Ba,gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba,gydF4y2Ba“互动”gydF4y2Ba5);gydF4y2Ba

    如果您指定gydF4y2Ba“模式”gydF4y2Ba作为gydF4y2Ba“累积”gydF4y2Ba为gydF4y2BakfoldLossgydF4y2Ba,那么函数返回累积误差,获得的平均错误折叠所有使用相同数量的树木为每一个褶皱。显示的数量为每个折叠树。gydF4y2Ba

    CVMdl.NumTrainedPerFoldgydF4y2Ba
    ans =gydF4y2Ba结构体字段:gydF4y2BaPredictorTrees:(300 300 300 300 300 300 300 300 300 300] InteractionTrees: 42 (76 100 100 100 100 100 100 100] 59gydF4y2Ba

    kfoldLossgydF4y2Ba可以计算累计使用300预测错误的树木和42交互树。gydF4y2Ba

    情节的累积,旨在10倍,均方误差。指定gydF4y2Ba“IncludeInteractions”gydF4y2Ba作为gydF4y2Ba假gydF4y2Ba排除交互方面的计算。gydF4y2Ba

    L_noInteractions = kfoldLoss (CVMdl,gydF4y2Ba“模式”gydF4y2Ba,gydF4y2Ba“累积”gydF4y2Ba,gydF4y2Ba“IncludeInteractions”gydF4y2Ba、假);图绘制(0:min (CVMdl.NumTrainedPerFold.PredictorTrees) L_noInteractions)gydF4y2Ba

    图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。gydF4y2Ba

    的第一个元素gydF4y2BaL_noInteractionsgydF4y2Ba是所有折叠的平均误差仅使用拦截获得(常数)。(gydF4y2BaJ + 1gydF4y2Ba)th元素的gydF4y2BaL_noInteractionsgydF4y2Ba使用拦截获得的平均误差项和第一gydF4y2BaJgydF4y2Ba预测树/线性项。绘制累计损失允许您监控误差变化预测树在GAM数量的增加。gydF4y2Ba

    找到最小误差和预测树的数量达到最小误差。gydF4y2Ba

    [M,我]= min (L_noInteractions)gydF4y2Ba
    M = 28.0506gydF4y2Ba
    我= 6gydF4y2Ba

    GAM达到最小误差,它包括5预测树。gydF4y2Ba

    计算均方误差累积使用线性项和交互项。gydF4y2Ba

    L = kfoldLoss (CVMdl,gydF4y2Ba“模式”gydF4y2Ba,gydF4y2Ba“累积”gydF4y2Ba);图绘制(0:min (CVMdl.NumTrainedPerFold.InteractionTrees), L)gydF4y2Ba

    图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。gydF4y2Ba

    的第一个元素gydF4y2BalgydF4y2Ba获得的平均误差都折叠使用拦截(常数)项和所有预测树/线性项。(gydF4y2BaJ + 1gydF4y2Ba)th元素的gydF4y2BalgydF4y2Ba使用拦截获得的平均误差项,所有预测树每线性项和第一gydF4y2BaJgydF4y2Ba交互树/交互项。情节显示错误增加交互术语时添加。gydF4y2Ba

    如果你满意错误当预测树的数量是5,您可以创建一个由训练单变量预测模型GAM和指定gydF4y2Ba“NumTreesPerPredictor”, 5gydF4y2Ba没有交叉验证。gydF4y2Ba

    更多关于gydF4y2Ba

    全部展开gydF4y2Ba

    版本历史gydF4y2Ba

    介绍了R2021agydF4y2Ba