主要内容

kfoldLoss

交叉验证分区回归模型的损失

    描述

    实例

    L= kfoldLoss (CVMdl)返回由交叉验证的回归模型得到的损失(均方误差)CVMdl.每一次,kfoldLoss使用根据训练折叠观察值训练的模型计算验证折叠观察值的损失。CVMdl.XCVMdl.Y包含两组观察结果。

    实例

    L= kfoldLoss (CVMdl,名称、值)返回由一个或多个名称值参数指定的带有附加选项的丢失。例如,可以指定自定义损耗函数。

    例子

    全部崩溃

    的回归集成的交叉验证损失卡斯莫尔数据

    加载卡斯莫尔数据集和选择位移,马力,和车辆重量作为预测。

    负载卡斯莫尔X=[排量马力重量];

    训练一组回归树。

    任正非= fitrensemble (X, MPG);

    创建一个交叉验证的集成伦斯并求出k倍交叉验证损失。

    rng(10,“龙卷风”)%的再现性cvrens=交叉值(rens);L=kfoldLoss(cvrens)
    L=28.7114

    均方误差(MSE)是模型质量的一种度量。检验交叉验证回归模型的每个折叠的MSE。

    加载卡斯莫尔数据集。指定预测值X和响应数据Y

    负载卡斯莫尔X=气缸排量马力重量;Y=每加仑;

    训练一个交叉验证的回归树模型。默认情况下,该软件实现10倍交叉验证。

    rng (“默认”)%的再现性CVMdl = fitrtree (X, Y,“克罗斯瓦尔”,“开”);

    计算每个折叠的MSE。使用方框图可视化损失值的分布。请注意,没有一个值是异常值。

    损失=kfoldLoss(CVMdl,“模式”,“个人”)
    损失=10×142.5072 20.3995 22.3737 34.4255 40.8005 60.2755 19.5562 9.2060 29.0788 16.3386
    boxchart(损失)

    图中包含axes对象。axes对象包含boxchart类型的对象。

    训练10倍交叉验证的广义加性模型(GAM)kfoldLoss计算累积交叉验证回归损失(均方误差)。利用误差来确定每个预测器的最佳树数(预测器的线性项)和每个交互项的最佳树数。

    或者,您可以找到菲特格姆通过使用优化超参数名称值参数。有关示例,请参阅使用OptimizeHyperparameters优化GAM

    加载病人数据集。

    负载病人

    创建一个包含预测变量的表(年龄,舒张压,吸烟者,重量,性别SelfAssessedHealthStatus)和响应变量(收缩的).

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

    使用默认的交叉验证选项创建一个交叉验证的GAM。指定“克罗斯瓦尔”将值参数命名为“开”。此外,指定包含5个交互术语。

    rng (“默认”)%的再现性CVMdl=FITGAM(待定,“收缩性”,“克罗斯瓦尔”,“开”,“互动”,5);

    如果您指定“模式”“累积的”对于kfoldLoss,然后该函数返回累积误差,即使用每个折叠相同数量的树获得的所有折叠的平均误差。显示每个折叠的树数。

    CVMdl。NumTrainedPerFold
    ans=带字段的结构:InteractionTrees: [76 100 100 100 100 100 42 100 100 100 59 100]

    kfoldLoss可以使用多达300个预测树和42个交互树计算累积误差。

    绘制累积的,10倍交叉验证,均方误差。指定“包容性互动”错误的将相互作用项从计算中排除。

    L_noInteractions = kfoldLoss (CVMdl,“模式”,“累积的”,“包容性互动”,假);图形绘图(0:min(CVMdl.NumTrainedPerFold.Predictor树),无交互)

    图中包含一个轴对象。axes对象包含类型为line的对象。

    第一要素无交互作用是仅使用截距(常数)项获得的所有折叠的平均误差。(J + 1) th元素的无交互作用是使用截距项和第一个截距项获得的平均误差J每个线性项的预测树。通过绘制累积损失图,您可以监控随着GAM中预测树数量的增加,错误如何变化。

    找到最小误差和用于实现最小误差的预测树的数量。

    [M,I]=min(无相互作用)
    M=28.0506
    I=6

    当GAM包含5个预测树时,其误差最小。

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

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

    图中包含一个轴对象。axes对象包含类型为line的对象。

    第一要素L是使用截距(常数)项和每个线性项的所有预测树获得的所有折叠的平均误差(J + 1) th元素的L是使用截距项、每个线性项的所有预测树和第一个预测树获得的平均误差J每个交互项的交互树。图中显示,当添加交互项时,误差增大。

    如果当预测树的数目为5时,您对错误感到满意,则可以通过再次训练单变量GAM并指定“NumTreesPerPredictor”,5没有交叉验证。

    输入参数

    全部崩溃

    交叉验证分区回归模型,指定为回归分区模型,回归分区集合,回归分区回归分区支持向量机对象可以通过两种方式创建对象:

    • 将下表中列出的经过训练的回归模型传递给其克罗斯瓦尔目标函数。

    • 使用下表中列出的函数训练回归模型,并为该函数指定一个交叉验证名称值参数。

    名称值参数

    指定可选的逗号分隔的字符对名称、值参数。名称是参数名和价值是对应的值。名称必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:Name1, Value1,…,的家

    例子:kfoldLoss(CVMdl,'Folds',[1 2 3 5])指定使用第一、第二、第三和第五次折叠来计算均方误差,但不包括第四次折叠。

    要使用的折叠索引,指定为正整数向量。的元素褶皱必须在以下范围内:1.CVMdl.KFold

    软件仅使用中指定的折叠褶皱

    例子:“褶皱”[1 4 10]

    数据类型:仅有一个的|

    标记以包含模型的交互术语,指定为符合事实的错误的.此论证仅对广义可加模型(GAM)有效。也就是说,您只能指定此参数CVMdl回归分区

    默认值为符合事实的如果模型在CVMdl(受过训练的)包含交互术语。值必须为错误的如果模型不包含交互术语。

    例子:“IncludeInteractions”,错误

    数据类型:必然的

    损失函数,指定为mse的或者函数句柄。

    • 指定内置函数mse的. 在这种情况下,损失函数是均方误差。

    • 使用函数句柄表示法指定您自己的函数。

      假定N是训练数据中的观察数(CVMdl.NumObservations).您的函数必须有签名lossvalue =失意(Y、Yfit、W),其中:

      • 输出参数损失值是一个标量。

      • 您可以指定函数名(失意).

      • Y是一个N-观察到的响应的by-1数值向量。

      • 伊菲特是一个N-预测响应的by-1数值向量。

      • W是一个N-观察权重的by-1数值向量。

      使用“LossFun”@失意

    数据类型:字符|一串|功能手柄

    输出的聚合级别,指定为“平均”,“个人”“累积的”

    价值 描述
    “平均” 输出是所有折叠的标量平均值。
    “个人” 输出是一个长度向量K每折叠包含一个值,其中K是折叠的数量。
    “累积的”

    笔记

    如果你想指定这个值,CVMdl一定是个回归分区集合反对或回归分区对象

    • 如果CVMdl回归分区集合,则输出为长度向量最小值(CVMdl.NumTrainedPerFold).每个元素J是通过使用由弱学习者训练的集合,函数获得的所有折叠的平均值1: j

    • 如果CVMdl回归分区,则输出值取决于IncludeInteractions价值

      • 如果IncludeInteractions错误的然后L是一个(1+分钟(NumTrainedPerFold.trees))-by-1数字列向量。的第一个元素L是仅使用截距(常数)项得到的所有折叠的平均值。的(j+1)第th元素L是使用截距项和第一个J每个线性项的预测树。

      • 如果IncludeInteractions符合事实的然后L是一个(1+分钟(NumTrainedPerFold.InteractionTrees))-by-1数字列向量。的第一个元素L是使用截距(常数)项和每个线性项的所有预测树获得的所有折叠的平均值。这个(j+1)第th元素L是使用截距项、每个线性项的所有预测树以及第一个J每个交互项的交互树。

    例子:“模式”,“个人”

    输出参数

    全部崩溃

    丢失,作为数值标量或数值列向量返回。

    默认情况下,损失是验证倍数观测值与根据训练倍数观测值训练的回归模型所作预测之间的均方误差。

    • 如果模式“平均”然后L是所有折叠的平均损失。

    • 如果模式“个人”然后L是一个K-by-1数值列向量,包含每个折叠的损失,其中K是折叠的数量。

    • 如果模式“累积的”CVMdl回归分区集合然后L是一个最小值(CVMdl.NumTrainedPerFold)-by-1数字列向量。每个元素J是否该函数使用弱学习器训练的集合获得的所有折叠的平均损失1: j

    • 如果模式“累积的”CVMdl回归分区,则输出值取决于IncludeInteractions价值

      • 如果IncludeInteractions错误的然后L是一个(1+分钟(NumTrainedPerFold.trees))-by-1数字列向量。的第一个元素L为仅使用截距(常数)项得到的所有折叠的平均损失。的(j+1)第th元素L是使用截距项和第一个J每个线性项的预测树。

      • 如果IncludeInteractions符合事实的然后L是一个(1+分钟(NumTrainedPerFold.InteractionTrees))-by-1数字列向量。的第一个元素L是使用截距(常数)项和每个线性项的所有预测树获得的所有折叠的平均损失。的(j+1)第th元素L是使用截距项、每个线性项的所有预测树以及第一个J每个交互项的交互树。

    替代功能

    如果要计算树模型的交叉验证损失,可以避免构造回归分区模型通过调用cvloss. 如果计划多次检查交叉验证树对象,则创建交叉验证树对象可以节省时间。

    扩展能力

    在R2011a中引入