交叉验证机器学习模型
加载电离层
数据集。该数据集有34个预测器和351个雷达返回的二进制响应,或坏(“b”
)还是好(‘g’
).
负载电离层rng(1);%为了再现性
训练支持向量机(金宝appSVM)分类器。标准化预测数据并指定类的顺序。
SVMModel = fitcsvm (X, Y,“标准化”,真的,“类名”, {“b”,‘g’});
SVMModel
是一个培训分类VM
分类器。“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
是一个ClassificationPartitionedModel
交叉验证分类器。在交叉验证期间,软件完成以下步骤:
将数据随机分成10组大小相等的数据。
在其中9个集合上训练一个SVM分类器。
重复步骤1和2k= 10倍。该软件每次会遗漏一个分区,并对其他9个分区进行训练。
为每个折叠组合泛化统计。
在中显示第一个模型CVSVMModel。训练有素的
.
FirstModel = CVSVMModel。训练有素的{1}
FirstModel=CompactClassificationSVM ResponseName:'Y'分类预测值:[]类名:{'b''g'}ScoreTransform:'none'Alpha:[78x1 double]偏差:-0.2209内核参数:[1x1结构]Mu:[1x34双]西格玛:[1x34双]支持向量:[78x34双]支持向量标签:[78x1双]属性、方法金宝app
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: {1x32 cell} ResponseName: 'Y' NumObservations: 351 KFold: 1 Partition: [1x1 cvpartition] ClassNames: {'b' ' 'g'} ScoreTransform: 'none'属性,方法
CVMdl
是一个ClassificationPartitionedModel
交叉验证的朴素贝叶斯分类器。
显示使用70%的数据训练的分类器的属性。
TrainedModel=CVMdl.Trained{1}
TrainedModel=CompactClassificationNaiveBayes ResponseName:'Y'分类预测值:[]类名称:{'b''g'}ScoreTransform:'none'分配名称:{1x32 cell}分配参数:{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%。
crossval
利用该方法训练回归广义可加模型fitrgam
,并创建一个交叉验证的GAMcrossval
和拒绝选项。然后,使用kfoldPredict
使用训练叠观察训练的模型预测验证叠观察的反应。
加载患者
数据集。
负载患者
创建一个包含预测变量的表(年龄
,舒张期
,吸烟者
,重量
,性别
,自我评估健康状况
)和响应变量(收缩压
).
tbl=表格(年龄、舒张压、吸烟者、体重、性别、自我评估健康状况、收缩压);
训练一个包含预测因子线性项的GAM。
Mdl = fitrgam(资源描述,“收缩”);
Mdl
是一个回归Gam
模型对象。
通过指定30%的保持率样本交叉验证模型。
rng (“默认”)%为了再现性CVMdl = crossval (Mdl,“坚持”, 0.3)
CVMdl = RegressionPartitionedGAM CrossValidatedModel: 'GAM' PredictorNames: {1x6 cell} CategoricalPredictors: [3 5 6] ResponseName: 'Systolic' NumObservations: 100 KFold: 1 Partition: [1x1 cvpartition] NumTrainedPerFold: [1x1 struct] ResponseTransform: 'none'属性,方法
的crossval
函数创建一个RegressionPartitionedGAM
模型对象CVMdl
选择“钉鞋”。在交叉验证期间,软件完成以下步骤:
随机选择并保留30%的数据作为验证数据,并使用其余数据训练模型。
将经过训练的小型模型存储在训练有素的
属性的交叉验证模型对象RegressionPartitionedGAM
.
属性可以选择不同的交叉验证设置“CrossVal”
,“CVPartition”
,“KFold”
,或“Leaveout”
名称值参数。
使用kfoldPredict
。该函数通过使用在训练折叠观察上训练的模型预测验证折叠观察的响应。该函数指定南
到训练折叠观察。
yFit = kfoldPredict (CVMdl);
找到验证折叠观察索引,并创建一个包含观察索引、观察响应值和预测响应值的表。显示表的前八行。
idx =找到(~ isnan (yFit));t =表(idx tbl.Systolic (idx) yFit (idx),...“VariableNames”, {“Obseraction指数”,的观测值,的预测价值});头(t)
ans=8×3表观测指标观测值预测值(uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu1240.22117.05 20 125.82 22 123 116.99 114 107 24 122.52
计算验证倍数观测的回归误差(均方误差)。
L=kfoldLoss(CVMdl)
L = 43.8715
Mdl
- - - - - -机器学习模型机器学习模型,指定为一个完整的回归或分类模型对象,如下表所示的支持模型。金宝app
回归模型对象
模型 | 全回归模型对象 |
---|---|
广义加性模型 | 回归Gam |
神经网络模型 | RegressionNeuralNetwork |
分类模型对象
模型 | 全分类模型对象 |
---|---|
广义加性模型 | 分类 |
k最近的邻居模型 | ClassificationKNN |
朴素贝叶斯模型 | ClassificationNaiveBayes |
神经网络模型 | ClassificationNeuralNetwork |
金宝app支持向量机的一类和二值分类 | 分类VM |
指定可选的逗号分隔的对名称,值
论据。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数名称1,值1,…,名称,值
.
crossval (Mdl KFold, 3)
指定在交叉验证模型中使用三个折叠。
“CVPartition”
- - - - - -交叉验证分区[]
(默认)|cvpartition
分区对象交叉验证分区,指定为cvpartition
由创建的分区对象cvpartition
.分区对象指定交叉验证的类型以及训练集和验证集的索引。
你只能指定这四个名称-值参数中的一个:“CVPartition”
,“坚持”
,“KFold”
,或“Leaveout”
.
例子:假设您使用以下方法创建了一个随机分区,用于对500个观测数据进行5倍交叉验证本量利= cvpartition(500年,“KFold”,5)
.然后,您可以使用“CVPartition”,本量利
.
“坚持”
- - - - - -用于抵抗验证的数据部分用于保持有效性验证的部分数据,指定为范围(0,1)中的标量值。如果指定‘坚持’,p
,则软件完成以下步骤:
随机选择和保留p*100
%的数据作为验证数据,并使用其余的数据训练模型。
将经过训练的小型模型存储在训练有素的
交叉验证模型的性质。如果Mdl
没有相应的紧凑对象,那么呢训练有素的
包含完整对象。
你只能指定这四个名称-值参数中的一个:“CVPartition”
,“坚持”
,“KFold”
,或“Leaveout”
.
例子:“坚持”,0.1
数据类型:双
|单
“KFold”
- - - - - -数量的折叠10
(默认)|大于1的正整数值在交叉验证模型中使用的折叠数,指定为大于1的正整数值。如果指定KFold, k
,则软件完成以下步骤:
将数据随机划分为k
设置。
对于每个集合,保留该集合作为验证数据,并使用另一个来训练模型k
- 1设置。
存储k
紧凑、训练有素的模型k
-by-1细胞载体训练有素的
交叉验证模型的性质。如果Mdl
没有相应的紧凑对象,那么呢训练有素的
包含完整对象。
你只能指定这四个名称-值参数中的一个:“CVPartition”
,“坚持”
,“KFold”
,或“Leaveout”
.
例子:“KFold”,5
数据类型:单
|双
“Leaveout”
- - - - - -分析交叉验证标志“关”
(默认)|“上”
省略一个交叉验证标志,指定为“上”
或“关”
。如果你指定“Leaveout”,“上”
,那么对于每一个n观察(n是表中规定的观察次数,不包括缺失的观察次数NumObservations
模型属性),软件完成以下步骤:
保留一个观测值作为验证数据,使用另一个来训练模型n- 1的观察。
存储n紧凑、训练有素的模型n-by-1细胞载体训练有素的
交叉验证模型的性质。如果Mdl
没有相应的紧凑对象,那么呢训练有素的
包含完整对象。
你只能指定这四个名称-值参数中的一个:“CVPartition”
,“坚持”
,“KFold”
,或“Leaveout”
.
例子:“Leaveout”,“上”
CVMdl
-交叉验证机器学习模型交叉验证的机器学习模型,根据输入模型的不同,作为下表中交叉验证(划分)的模型对象之一返回Mdl
.
回归模型对象
模型 | 回归模型(Mdl ) |
旨在模型(CompactMdl ) |
---|---|---|
广义加性模型 | 回归Gam |
RegressionPartitionedGAM |
神经网络模型 | RegressionNeuralNetwork |
RegressionPartitionedModel |
分类模型对象
模型 | 分类模型(Mdl ) |
旨在模型(CompactMdl ) |
---|---|---|
广义加性模型 | 分类 |
ClassificationPartitionedGAM |
k最近的邻居模型 | ClassificationKNN |
ClassificationPartitionedModel |
朴素贝叶斯模型 | ClassificationNaiveBayes |
ClassificationPartitionedModel |
神经网络模型 | ClassificationNeuralNetwork |
ClassificationPartitionedModel |
金宝app支持向量机的一类和二值分类 | 分类VM |
ClassificationPartitionedModel |
评估的预测性能Mdl
对交叉验证数据使用kfold的函数和性质CVMdl
,如kfoldPredict
和kfoldLoss
.
通过使用name-value参数返回具有分层分区的分区分类器“KFold”
或“坚持”
.
创建一个cvpartition
对象本量利
使用本量利=
cvpartition
(n, KFold, k)
.通过使用name-value参数返回具有非分层分区的分区分类器“CVPartition”,本量利
.
您可以通过使用拟合函数并指定以下名称值参数之一,直接创建交叉验证模型,而不是训练模型然后交叉验证模型:“CrossVal”
,“CVPartition”
,“坚持”
,“Leaveout”
,或“KFold”
.
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。