MATLAB怎么划分训练集和测试集
时间: 2023-09-04 17:10:51 浏览: 308
在MATLAB中,可以使用 `cvpartition` 函数来划分训练集和测试集。具体步骤如下:
1. 将训练数据和标签合并成一个矩阵,形成 `data` 矩阵。
2. 使用 `cvpartition` 函数划分数据集。`cvpartition` 函数可以根据指定的方式将数据集划分为训练集和测试集,常用的划分方式有:随机划分、分层划分等。
例如,使用随机划分将数据集划分为训练集和测试集,代码如下:
```matlab
% 将数据和标签合并成一个矩阵
data = [X, y];
% 随机划分数据集,80%作为训练集,20%作为测试集
cv = cvpartition(size(data,1), 'Holdout', 0.2);
% 获取训练集和测试集的索引
trainIdx = cv.training;
testIdx = cv.test;
% 分别获取训练集和测试集
trainData = data(trainIdx,:);
testData = data(testIdx,:);
```
以上代码中,`size(data,1)` 表示数据集的样本数,`'Holdout',0.2` 表示随机将数据集划分为训练集和测试集,其中测试集占比为20%。`cv.training` 和 `cv.test` 分别表示训练集和测试集的索引,将这些索引应用于原始数据即可得到训练集和测试集。
阅读全文