交叉验证机器学习模型
加载电离层
数据集。该数据集有34个预测器和351个雷达返回的二进制响应,或坏(“b”
)或好(‘g’
).
加载电离层rng (1);%的再现性
训练支持向量机分万博1manbetx类器。标准化预测器数据并指定类的顺序。
svmmodel = fitcsvm(x,y,“标准化”,真的,“类名”,{“b”那‘g’});
SVMModel
是一个培训ClassificationSVM
分类器。“b”
是负类和‘g’
是积极的课程。
使用10倍交叉验证交叉验证分类器。
CVSVMMODEL = Crossval(SVMModel)
CVSVMModel = ClassificationPartitionedModel CrossValidatedModel: 'SVM' PredictorNames: {1x34 cell} ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' ' 'g'} ScoreTransform: 'none'属性,方法
cvsvmmodel.
是一个ClassificationededModel.
旨在分类器。在交叉验证期间,软件完成以下步骤:
将数据随机分成10组大小相等的数据。
在九个集中训练SVM分类器。
重复步骤1和2K.= 10次。每次留出一个分区,并在其他九个分区上列车。
将每个折叠组合的泛化统计数据。
显示第一个模型CVSVMModel。训练有素的
.
FirstModel = CVSVMModel。训练有素的{1}
FirstModel = CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'none' Alpha: [78x1 double] Bias: -0.2209 KernelParameters: [1x1 struct] Mu: [1x34 double] Sigma: [1x34 double万博1manbetx] SupportVectors: [78x34 double] SupportVectorLabels: [78x1 double]属性,方法
FirstModel
是10个训练有素的分类器中的第一个。它是一个CompactClassificationSVM
分类器。
你可以通过传递来估计泛化误差cvsvmmodel.
来kfoldLoss
.
指定用于交叉验证的坚持样本比例。默认情况下,横梁
使用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: {1x32 cell} ResponseName: 'Y' NumObservations: 351 KFold: 1 Partition: [1x1 cvpartition] ClassNames: {'b' ' 'g'} ScoreTransform: 'none'属性,方法
CVMdl
是一个ClassificationededModel.
交叉验证,朴素的贝叶斯分类器。
显示使用70%的数据培训的分类器的属性。
TrainedModel = CVMdl。训练有素的{1}
TrainedModel = CompactClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'none' DistributionNames: {1x32 cell} DistributionParameters: {2x32 cell}属性,方法
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)Fitrgam.
,并创建一个交叉验证的GAM横梁
还有“拒绝”选项。然后,用kfoldPredict
预测使用培训折叠观察的模型来预测验证折叠观测的响应。
加载病人
数据集。
加载病人
创建包含预测器变量的表(年龄
那舒张压
那吸烟者
那重量
那性别
那SelfAssessedHealthStatus
)和响应变量(收缩压
).
台=表(年龄、舒张压、吸烟、体重、性别、SelfAssessedHealthStatus,收缩期);
培训包含预测器的线性术语的游戏。
mdl = fitrgam(tbl,“收缩”);
MDL.
是一个RegressionGAM
模型对象。
通过指定30%坚持样本来交叉验证模型。
rng (“默认”)%的再现性cvmdl = crossval(mdl,“坚持”,0.3)
cvmdl = regressionpartitionedgam crossvalidatedmodel:'gam'predictornames:{1x6 cell} categoricalpricictors:[3 5 6] racatectename:'systolic'numobservations:100 kfold:1分区:[1x1 cvpartition] numtrainedperfold:[1x1 struct] ranceTransform:'无'属性, 方法
这横梁
函数创建一个RegressionPartitionedGAM
模型对象CVMdl
选择“钉鞋”。在交叉验证期间,软件完成以下步骤:
随机选择并保留30%的数据作为验证数据,并使用其余数据列出模型。
存储紧凑型培训的模型训练有素的
属性的交叉验证模型对象RegressionPartitionedGAM
.
您可以通过使用使用的不同交叉验证设置'横向'
那“CVPartition”
那“KFold”
,或'忽略'
名称-值参数。
使用kfoldPredict
.该函数通过使用在训练折叠观测上训练的模型来预测验证折叠观测的响应。函数分配南
训练折叠观察。
YFIT = KFOLDPREDICT(CVMDL);
找到验证倍数观察索引,并创建一个包含观察索引、观察响应值和预测响应值的表。显示表的前8行。
idx =找到(~ isnan (yFit));t =表(idx tbl.Systolic (idx) yFit (idx),...“VariableNames”,{'Obseraction Index'那的观测值那'预测值'});头(t)
ans =8×3表观测指数观测值预测值_________________ ______________ _______________ 1 124 130.22 6 121 124.38 7 130 125.26 12 115 117.05 20 125 121.82 22 123 116.99 23 114 107 24 128 122.52
计算验证倍数观测的回归误差(均方误差)。
L = kfoldLoss (CVMdl)
L = 43.8715
MDL.
-机器学习模型机器学习模型,指定为一个完整的回归或分类模型对象,如下表所示的支持模型。万博1manbetx
回归模型对象
模型 | 全回归模型对象 |
---|---|
广义添加剂模型 | RegressionGAM |
神经网络模型 | 回归翁网络网络 |
分类模型对象
模型 | 全分类模型对象 |
---|---|
广义添加剂模型 | ClassificationGAM |
K.最近的邻居模型 | ClassificationKNN |
朴素贝叶斯模型 | ClassificationNaiveBayes |
神经网络模型 | ClassificationneuralKetwork. |
万博1manbetx支持向量机的一类和二值分类 | ClassificationSVM |
指定可选的逗号分离对名称,价值
参数。的名字
是参数名称和价值
为对应值。的名字
必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家
.
Crossval(MDL,'Kfold',3)
指定在交叉验证模型中使用三次折叠。
“CVPartition”
-交叉验证分区[]
(默认)|CVPartition.
分区对象交叉验证分区,指定为CVPartition.
分区对象由CVPartition.
.分区对象指定交叉验证的类型以及训练集和验证集的索引。
您只能指定这四个名称值参数中的一个:“CVPartition”
那“坚持”
那“KFold”
,或'忽略'
.
例子:假设您使用使用的500个观察中的5倍交叉验证的随机分区CVP = CVPARTING(500,'KFOLD',5)
.然后,您可以使用“CVPartition”,本量利
.
“坚持”
-阻止验证的数据分数用于抵抗验证的数据的一部分,指定为范围(0,1)中的标量值。如果您指定'持有',p
,然后软件完成以下步骤:
随机选择和保留p * 100
%的数据作为验证数据,并使用其余的数据训练模型。
存储紧凑型培训的模型训练有素的
交叉验证模型的性质。如果MDL.
没有相应的紧凑对象,那么呢训练有素的
包含一个完整的对象。
您只能指定这四个名称值参数中的一个:“CVPartition”
那“坚持”
那“KFold”
,或'忽略'
.
例子:“坚持”,0.1
数据类型:双
|单
“KFold”
-数量的折叠10
(默认)|大于1的正整数在交叉验证模型中使用的折叠数,指定为大于1的正整数。如果您指定'kfold',k
,然后软件完成以下步骤:
将数据随机划分为K.
集。
对于每个设置,保留设置为验证数据,并使用其他培训模型K.
- 1集。
储存K.
紧凑,训练模型在K.
-by-1细胞载体训练有素的
交叉验证模型的性质。如果MDL.
没有相应的紧凑对象,那么呢训练有素的
包含一个完整的对象。
您只能指定这四个名称值参数中的一个:“CVPartition”
那“坚持”
那“KFold”
,或'忽略'
.
例子:'kfold',5
数据类型:单
|双
'忽略'
-分析交叉验证标志“关闭”
(默认)|'在'
省略一交叉验证标志,指定为'在'
或“关闭”
.如果您指定“Leaveout”,“上”
,那么对于每一个N观察(N不包括遗漏的观测数据,观测数据的数量是否在numobservations.
模型属性),软件完成以下步骤:
保留一个观测值作为验证数据,使用另一个来训练模型N- 1的观察。
储存N紧凑,训练模型在一个N-by-1细胞载体训练有素的
交叉验证模型的性质。如果MDL.
没有相应的紧凑对象,那么呢训练有素的
包含一个完整的对象。
您只能指定这四个名称值参数中的一个:“CVPartition”
那“坚持”
那“KFold”
,或'忽略'
.
例子:“Leaveout”,“上”
CVMdl
-交叉验证的机器学习模型交叉验证的机器学习模型,返回以下表中的交叉验证(分区)模型对象之一,具体取决于输入模型MDL.
.
回归模型对象
模型 | 回归模型(MDL. ) |
旨在模型(compactmdl. ) |
---|---|---|
广义添加剂模型 | RegressionGAM |
RegressionPartitionedGAM |
神经网络模型 | 回归翁网络网络 |
回归排放性的模型 |
分类模型对象
模型 | 分类模型(MDL. ) |
旨在模型(compactmdl. ) |
---|---|---|
广义添加剂模型 | ClassificationGAM |
Classificationededgam. |
K.最近的邻居模型 | ClassificationKNN |
ClassificationededModel. |
朴素贝叶斯模型 | ClassificationNaiveBayes |
ClassificationededModel. |
神经网络模型 | ClassificationneuralKetwork. |
ClassificationededModel. |
万博1manbetx支持向量机的一类和二值分类 | ClassificationSVM |
ClassificationededModel. |
评估的预测性能MDL.
通过使用交叉验证数据kfold.的函数和性质CVMdl
, 如kfoldPredict
和kfoldLoss
.
使用名称值参数返回具有分层分区的分区分类器“KFold”
或“坚持”
.
创建一个CVPartition.
目的本量利
使用本量利=
CVPartition.
(n, KFold, k)
.通过使用name-value参数返回具有非分层分区的分区分类器“CVPartition”,本量利
.
不需要训练一个模型然后交叉验证它,你可以直接创建一个交叉验证的模型,通过使用拟合函数并指定以下名称-值参数之一:'横向'
那“CVPartition”
那“坚持”
那'忽略'
,或“KFold”
.
使用注意事项及限制:
此功能支持万博1manbetxClassificationKNN
和ClassificationSVM
对象配有GPU阵列输入参数。
有关更多信息,请参见在GPU上运行matlab函数(并行计算工具箱).
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。