主要内容

crossval

类:RegressionSVM

交叉验证的支持向量机回归模型万博1manbetx

语法

CVMdl =交叉val(mdl)
CVMdl = crossval(mdl,Name,Value)

描述

CVMdl= crossval (mdl返回一个交叉验证(分区)的支持向量机回归模型,万博1manbetxCVMdl,由训练好的SVM回归模型,mdl

CVMdl= crossval (mdl名称,值返回一个交叉验证的模型,其中包含一个或多个指定的附加选项名称,值对参数。

输入参数

全部展开

完整的,训练好的SVM回归模型,指定为RegressionSVM返回的模型fitrsvm

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

交叉验证分区,指定为cvpartition创建的分区对象cvpartition.分区对象指定交叉验证的类型以及训练集和验证集的索引。

要创建交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或Leaveout

例子:假设您创建一个随机分区,对500个观察结果进行5次交叉验证,使用cvp = cvpartition(500,'KFold',5).然后,您可以通过使用指定交叉验证的模型“CVPartition”,本量利

用于拒绝验证的数据的百分比,指定为范围(0,1)中的标量值。如果你指定‘坚持’,p,然后软件完成以下步骤:

  1. 随机选择并保留p * 100%的数据作为验证数据,并使用其余数据训练模型。

  2. 将紧凑的、训练过的模型存储在训练有素的交叉验证模型的属性。

要创建交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或Leaveout

例子:“坚持”,0.1

数据类型:|

交叉验证模型中使用的折叠数,指定为大于1的正整数值。如果你指定KFold, k,然后软件完成以下步骤:

  1. 将数据随机划分为k集。

  2. 对于每个集合,保留该集合作为验证数据,并使用另一个集合训练模型k- 1集。

  3. 存储k紧凑,训练有素的模型k的-by-1单元格向量训练有素的交叉验证模型的属性。

要创建交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或Leaveout

例子:“KFold”,5

数据类型:|

省略一个交叉验证标志,指定为“上”“关闭”.如果你指定“Leaveout”,“上”,然后对每个的n观察(n(不包括遗漏的观测数据)的观测数据数目是否已列明NumObservations属性的模型),软件完成这些步骤:

  1. 保留一个观察数据作为验证数据,并使用另一个数据训练模型n- 1次观察。

  2. 存储n紧凑,训练有素的模型在一个n的-by-1单元格向量训练有素的交叉验证模型的属性。

要创建交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或Leaveout

例子:“Leaveout”,“上”

输出参数

全部展开

交叉验证SVM回归模型,返回为RegressionPartitionedSVM模型。

例子

全部展开

这个例子展示了如何训练交叉验证的SVM回归模型crossval

这个例子使用了来自UCI机器学习库的鲍鱼数据。下载数据并将其保存在当前文件夹中“abalone.data”.将数据读入表格

可读的(“abalone.data”“文件类型”“文本”“ReadVariableNames”、假);rng默认的再现率%

样本数据包含4177个观测值。所有的预测变量都是连续的,除了,这是一个包含可能值的分类变量“米”(男性)“F”(适用于女性),以及“我”(婴儿)。目标是预测鲍鱼身上的环数,并通过物理测量来确定它的年龄。

训练SVM回归模型,使用核尺度为2.2的高斯核函数。标准化数据。

MDL = fitrsvm(tbl,“Var9”“KernelFunction”“高斯”“KernelScale”, 2.2,“标准化”,真正的);

mdl是受过训练的RegressionSVM回归模型。

使用10倍交叉验证对模型进行交叉验证。

CVMdl =交叉val(mdl)
CVMdl = classreg.learning.partition.RegressionPartitionedSVM CrossValidatedModel: 'SVM' PredictorNames: {1x8 cell} CategoricalPredictors: 1 ResponseName: 'Var9' NumObservations: 4177 KFold: 10 Partition: [1x1 cvpartition] ResponseTransform: 'none'属性,方法

CVMdl是一个RegressionPartitionedSVM交叉验证回归模型。软件:

1.随机将数据划分为10个相同大小的集。

2.在10个集合中的9个集合上训练SVM回归模型。

3.重复步骤1和2k= 10次了。它每次都省略一个分区,并在其他九个分区上进行训练。

4.结合每个折叠的泛化统计信息。

计算交叉验证模型的再替换损失。

损失= kfoldLoss(cvdl)
损失= 4.5712

这个例子展示了如何为训练交叉验证的SVM回归模型指定一个拒绝比例。

这个例子使用了来自UCI机器学习库的鲍鱼数据。下载数据并将其保存在当前文件夹中“abalone.data”.将数据读入表格

可读的(“abalone.data”“文件类型”“文本”“ReadVariableNames”、假);rng默认的再现率%

样本数据包含4177个观测值。所有的预测变量都是连续的,除了,这是一个包含可能值的分类变量“米”(男性)“F”(适用于女性),以及“我”(婴儿)。目标是预测鲍鱼身上的环数,并通过物理测量来确定它的年龄。

训练SVM回归模型,使用具有自动核尺度的高斯核函数。标准化数据。

MDL = fitrsvm(tbl,“Var9”“KernelFunction”“高斯”“KernelScale”“汽车”“标准化”,真正的);

mdl是受过训练的RegressionSVM回归模型。

通过指定10%的保留样本交叉验证回归模型。

CVMdl = crossval(mdl,“坚持”, 0.1)
CVMdl = classreg.learning.partition.RegressionPartitionedSVM CrossValidatedModel: 'SVM' PredictorNames: {1x8 cell}分类预测器:1 ResponseName: 'Var9' NumObservations: 4177 KFold: 1 Partition: [1x1 cvpartition] ResponseTransform: 'none

CVMdl是一个RegressionPartitionedSVM模型对象。

计算交叉验证模型的再替换损失。

损失= kfoldLoss(cvdl)
损失= 5.2499

选择

您可以直接创建交叉验证的模型,而不是训练SVM回归模型,然后对其进行交叉验证fitrsvm并指定这些名称-值对参数中的任意一个:“CrossVal”“CVPartition”“坚持”“Leaveout”,或“KFold”

参考文献

[1]纳什,w.j., T. L.塞勒斯,S. R.塔尔博特,A. J.考索恩,W. B.福特。鲍鱼种群生物学(石决明种)在塔斯马尼亚。I.黑唇鲍鱼(h . rubra)来自北海岸和巴斯海峡群岛。”海洋渔业司,1994年第48号技术报告。

[2]哇,S。级联相关的扩展和基准测试:前馈监督人工神经网络级联相关架构的扩展和基准测试。塔斯马尼亚大学计算机科学系论文, 1995年。

[3]克拉克,D.施雷特,A.亚当斯。“逆向传播与逆向传播的定量比较”,提交给1996年澳大利亚神经网络会议。

[4]利希曼,M。UCI机器学习库[http://archive.ics.uci.edu/ml]。加州欧文市:加州大学信息与计算机科学学院。

版本历史

在R2015b中引入