crossval
旨在机器学习模型
描述
例子
旨在支持向量机分类器
加载电离层
数据集。这个数据集有34个预测因子和351二进制响应雷达回报,要么坏(“b”
)或好(‘g’
)。
负载电离层rng (1);%的再现性
训练支持向量机(金宝appSVM)分类器。规范预测数据和指定类的顺序。
SVMModel = fitcsvm (X, Y,“标准化”,真的,“类名”,{“b”,‘g’});
SVMModel
是一个培训ClassificationSVM
分类器。“b”
是负类和‘g’
是积极的类。
旨在使用10倍交叉验证分类器。
CVSVMModel = crossval (SVMModel)
CVSVMModel = ClassificationPartitionedModel CrossValidatedModel:“支持向量机”PredictorNames: {“x1”“x2”“x3”“x4”的x5的x6“x7”“×8”“x9”“x10”的x11“x12”“* 13”“x14英寸”“x15”“x16”“x17”“x18”“x19”“x20”“x21”“将”“x23”“x24”“25”“x26”“x27”“x28”“x29”“x30”“x31”“x32”“x33”“x34”} ResponseName:“Y”NumObservations: 351 KFold: 10个分区:[1 x1 cvpartition]类名:{b ' g '} ScoreTransform:“没有一个”属性,方法
CVSVMModel
是一个ClassificationPartitionedModel
旨在分类器。在交叉验证,软件完成以下步骤:
随机数据分割成10套大小相等。
火车的SVM分类器在九集。
重复步骤1和2k= 10倍。软件每次遗漏一个分区和火车9个分区。
为每个折叠结合归纳统计。
显示第一个模型CVSVMModel.Trained
。
FirstModel = CVSVMModel.Trained {1}
FirstModel = CompactClassificationSVM ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:‘没有’α:[78 x1双]偏见:-0.2209 KernelParameters: [1 x1 struct]μ:[0.8888 0 0.6320 0.0406 0.5931 0.1205 0.5361 0.1286 0.5083 0.1879 0.4779 0.1567 0.3924 0.0875 0.3360 0.0789 0.3839 9.6066 e-05 0.3562 -0.0308 0.3398 -0.0073 0.3590 -0.0628 0.4064 -0.0664 0.5535 -0.0749 0.3835 -0.0295……σ:[0.3149 0 0.5033 0.4441 0.5255 0.4663 0.4987 0.5205 0.5040 0.4780 0.5649 0.4896 0.6293 0.4924 0.6606 0.4535 0.6133 0.4878 0.6250 0.5140 0.6075 0.5150 0.6068 0.5222 0.5729 0.5103 0.5061 0.5478 0.5712 0.5032 0.5639 0.5062……]S金宝appupportVectors: [78 x34双]SupportVectorLabels: [78 x1双]属性,方法
FirstModel
是第一个的10个训练分类器。这是一个CompactClassificationSVM
分类器。
你可以估计泛化误差通过CVSVMModel
来kfoldLoss
。
指定维持样本比例为朴素贝叶斯交叉验证
指定一个维持样本比例为交叉验证。默认情况下,crossval
使用10倍交叉验证旨在朴素贝叶斯分类器。然而,你有几个交叉验证的其他选项。例如,您可以指定一个不同的折叠或抵抗样本比例。
加载电离层
数据集。这个数据集有34个预测因子和351二进制响应雷达回报,要么坏(“b”
)或好(‘g’
)。
负载电离层
删除前两个稳定的预测因子。
X = X(:, 3:结束);rng (“默认”);%的再现性
使用预测训练朴素贝叶斯分类器X
和类标签Y
。推荐的做法是指定类名。“b”
是负类和‘g’
是积极的类。fitcnb
假定每一个预测是有条件和正态分布。
Mdl = fitcnb (X, Y,“类名”,{“b”,‘g’});
Mdl
是一个培训ClassificationNaiveBayes
分类器。
旨在抵抗样本分类器通过指定一个30%。
CVMdl = crossval (Mdl,“坚持”,0.3)
CVMdl = ClassificationPartitionedModel CrossValidatedModel:“NaiveBayes”PredictorNames: {“x1”“x2”“x3”“x4”的x5的x6“x7”“×8”“x9”“x10”的x11“x12”“* 13”“x14英寸”“x15”“x16”“x17”“x18”“x19”“x20”“x21”“将”“x23”“x24”“25”“x26”“x27”“x28”“x29”“x30”“x31”“x32”} ResponseName:“Y”NumObservations: 351 KFold: 1分区:[1 x1 cvpartition]类名:{b ' g '} ScoreTransform:“没有一个”属性,方法
CVMdl
是一个ClassificationPartitionedModel
旨在,朴素贝叶斯分类器。
显示的属性分类器训练使用70%的数据。
TrainedModel = CVMdl.Trained {1}
TrainedModel = CompactClassificationNaiveBayes ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:“没有一个”DistributionNames: {1} x32细胞DistributionParameters: {2} x32细胞属性,方法
TrainedModel
是一个CompactClassificationNaiveBayes
分类器。
估计泛化误差通过CVMdl
来kfoldloss
。
kfoldLoss (CVMdl)
ans = 0.2095
样本外的误分类误差大约是21%。
泛化误差减少选择五个最重要的预测因子。
idx = fscmrmr (X, Y);Xnew = X (:, idx (1:5));
朴素贝叶斯分类器训练的新的预测。
Mdlnew = fitcnb (Xnew Y“类名”,{“b”,‘g’});
旨在新的分类器通过指定一个抵抗30%样本,并估计泛化误差。
CVMdlnew = crossval (Mdlnew,“坚持”,0.3);kfoldLoss (CVMdlnew)
ans = 0.1429
样本外的误分类错误从大约21%减少到大约14%。
创建旨在回归GAM使用crossval
火车回归广义相加模型(GAM)通过使用fitrgam
使用,并创建一个旨在GAMcrossval
和坚持的选择。然后,用kfoldPredict
为validation-fold观察使用一个模型来预测反应训练training-fold观测。
加载病人
数据集。
负载病人
创建一个表,其中包含预测变量(年龄
,舒张压
,吸烟者
,重量
,性别
,SelfAssessedHealthStatus
)和响应变量(收缩压
)。
台=表(年龄、舒张压、吸烟、体重、性别、SelfAssessedHealthStatus,收缩期);
火车一个包含线性项GAM预测。
Mdl = fitrgam(资源描述,“收缩”);
Mdl
是一个RegressionGAM
模型对象。
模型旨在通过指定一个抵抗样本的30%。
rng (“默认”)%的再现性CVMdl = crossval (Mdl,“坚持”,0.3)
CVMdl = RegressionPartitionedGAM CrossValidatedModel:“联欢”PredictorNames:{“年龄”“舒张期”“烟民”“重量”“性别”的SelfAssessedHealthStatus} CategoricalPredictors: [3 5 6] ResponseName:“收缩”NumObservations: 100 KFold: 1分区:[1 x1 cvpartition] NumTrainedPerFold: [1 x1 struct] ResponseTransform:“没有一个”IsStandardDeviationFit: 0属性,方法
的crossval
函数创建一个RegressionPartitionedGAM
模型对象CVMdl
坚持选择。在交叉验证,软件完成以下步骤:
随机选择和储备30%的数据作为验证数据,并培训使用其余的数据模型。
在存储紧凑,训练模型
训练有素的
旨在模型对象的属性RegressionPartitionedGAM
。
你可以选择一个不同的交叉验证设置使用“CrossVal”
,“CVPartition”
,“KFold”
,或“Leaveout”
名称-值参数。
validation-fold观察利用预测的反应kfoldPredict
。validation-fold观测使用的预测响应函数模型训练training-fold观察。函数分配南
training-fold观测。
yFit = kfoldPredict (CVMdl);
找到validation-fold观察指标,创建一个表包含观察指数,观察到的响应值,预测响应值。显示表的前八行。
idx =找到(~ isnan (yFit));t =表(idx tbl.Systolic (idx) yFit (idx),…“VariableNames”,{“Obseraction指数”,的观测值,的预测价值});头(t)
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.52
计算回归误差(均方误差)validation-fold观察。
L = kfoldLoss (CVMdl)
L = 43.8715
输入参数
Mdl
- - - - - -机器学习模型
完整的回归模型对象|完整的分类模型对象
机器学习模型,指定为一个完整的回归或分类模型对象,如下表中给出支持的模型。金宝app
回归模型对象
模型 | 完整的回归模型对象 |
---|---|
高斯过程回归(GPR)模型 | RegressionGP (如果你提供一个定制的“ActiveSet” 在调用fitrgp ,然后你不能旨在探地雷达模型。) |
广义可加模型(GAM) | RegressionGAM |
神经网络模型 | RegressionNeuralNetwork |
分类模型对象
模型 | 完整的分类模型对象 |
---|---|
广义加性模型 | ClassificationGAM |
k最近的邻居模型 | ClassificationKNN |
朴素贝叶斯模型 | ClassificationNaiveBayes |
神经网络模型 | ClassificationNeuralNetwork |
金宝app看到下面成了一和二分类支持向量机 | ClassificationSVM |
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:crossval (Mdl KFold, 3)
指定使用三折叠旨在模型。
CVPartition
- - - - - -交叉验证分区
[]
(默认)|cvpartition
分区对象
交叉验证分区,指定为一个cvpartition
分区创建的对象cvpartition
。分区对象指定了类型的交叉验证,训练集和验证集的索引。
您可以指定唯一的这四个名称-值参数:“CVPartition”
,“坚持”
,“KFold”
,或“Leaveout”
。
例子:假设您创建一个随机的分区为5倍交叉验证500观察使用本量利= cvpartition(500年,“KFold”, 5)
。然后,您可以指定模型旨在通过使用“CVPartition”,本量利
。
坚持
- - - - - -为抵抗验证的数据
标量值的范围(0,1)
分数的数据用于抵抗验证、指定为一个标量值的范围(0,1)。如果您指定‘坚持’,p
,那么软件完成以下步骤:
随机选择和储备
p * 100
%的数据作为验证数据,并使用其余的数据训练模型。在存储紧凑,训练模型
训练有素的
旨在模型的属性。如果Mdl
没有对应的紧凑的对象呢训练有素的
包含一个完整的对象。
您可以指定唯一的这四个名称-值参数:“CVPartition”
,“坚持”
,“KFold”
,或“Leaveout”
。
例子:“坚持”,0.1
数据类型:双
|单
KFold
- - - - - -数量的折叠
10
(默认)|值大于1的正整数
折叠使用旨在模型,指定为一个正整数的值大于1。如果您指定KFold, k
,那么软件完成以下步骤:
随机数据分割成
k
集。对于每一个集合,储备作为验证数据集,使用其他和训练模型
k
- 1集。存储
k
在一个紧凑,训练模型k
1细胞向量训练有素的
旨在模型的属性。如果Mdl
没有对应的紧凑的对象呢训练有素的
包含一个完整的对象。
您可以指定唯一的这四个名称-值参数:“CVPartition”
,“坚持”
,“KFold”
,或“Leaveout”
。
例子:“KFold”, 5
数据类型:单
|双
Leaveout
- - - - - -分析交叉验证标志
“关闭”
(默认)|“上”
分析交叉验证标志,指定为“上”
或“关闭”
。如果您指定“Leaveout”,“上”
,然后为每个n观察(n是观测的数量,不包括失踪的观察,指定的吗NumObservations
模型的属性),软件完成以下步骤:
保留一个观察验证数据,并使用其他火车模型n- 1的观察。
存储n在一个紧凑,训练模型n1细胞向量
训练有素的
旨在模型的属性。如果Mdl
没有对应的紧凑的对象呢训练有素的
包含一个完整的对象。
您可以指定唯一的这四个名称-值参数:“CVPartition”
,“坚持”
,“KFold”
,或“Leaveout”
。
例子:“Leaveout”,“上”
输出参数
CVMdl
——旨在机器学习模型
旨在(分区)模型对象
旨在机器学习模型,作为一个旨在返回对象在以下表(分区)模型,根据输入模型Mdl
。
回归模型对象
模型 | 回归模型(Mdl ) |
旨在模型(CVMdl ) |
---|---|---|
高斯过程回归模型 | RegressionGP |
RegressionPartitionedGP |
广义加性模型 | RegressionGAM |
RegressionPartitionedGAM |
神经网络模型 | RegressionNeuralNetwork |
RegressionPartitionedModel |
分类模型对象
模型 | 分类模型(Mdl ) |
旨在模型(CVMdl ) |
---|---|---|
广义加性模型 | ClassificationGAM |
ClassificationPartitionedGAM |
k最近的邻居模型 | ClassificationKNN |
ClassificationPartitionedModel |
朴素贝叶斯模型 | ClassificationNaiveBayes |
ClassificationPartitionedModel |
神经网络模型 | ClassificationNeuralNetwork |
ClassificationPartitionedModel |
金宝app看到下面成了一和二分类支持向量机 | ClassificationSVM |
ClassificationPartitionedModel |
提示
评估的预测性能
Mdl
在旨在通过使用数据kfold功能和属性CVMdl
,如kfoldPredict
,kfoldLoss
,kfoldMargin
,kfoldEdge
对分类和kfoldPredict
和kfoldLoss
回归。返回一个分层分区,分区分类器通过使用名称-值参数
“KFold”
或“坚持”
。创建一个
cvpartition
对象本量利
使用本量利=
cvpartition
(n, KFold, k)
。返回一个nonstratified分区,分区分类器通过使用名称-值参数“CVPartition”,本量利
。
选择功能
而不是训练模型,然后交叉验证图谱,可以直接创建一个旨在模型通过使用拟合函数并指定一个名称-值参数:“CrossVal”
,“CVPartition”
,“坚持”
,“Leaveout”
,或“KFold”
。
扩展功能
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
使用笔记和限制:
这个函数完全支持GPU训练分类模型指定为金宝app一个数组
ClassificationKNN
或ClassificationSVM
对象。
有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
版本历史
介绍了R2012aR2022b:是一个旨在高斯过程回归模型RegressionPartitionedGP
对象
从R2022b,旨在是一个高斯过程回归(GPR)模型RegressionPartitionedGP
对象。在以前的版本中,一个旨在探地雷达是一个模型RegressionPartitionedModel
对象。
您可以创建一个RegressionPartitionedGP
对象在两个方面:
创建一个从探地雷达模型旨在模型对象
RegressionGP
通过使用crossval
对象的功能。创建一个旨在通过使用模型
fitrgp
功能和指定名称的参数之一CrossVal
,CVPartition
,坚持
,KFold
,或Leaveout
。
无论你培养一个完整的或旨在探地雷达模型首先,你不能指定一个ActiveSet
调用的价值fitrgp
。
另请参阅
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。