C++将数据集划分为训练集验证集和测试集
时间: 2023-06-19 17:07:14 浏览: 81
在C++中,可以使用随机数生成器或者手动指定数据集的方式将数据集划分为训练集、验证集和测试集。
下面是一个简单的示例代码,演示了如何使用随机数生成器将数据集划分为训练集、验证集和测试集:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
// 生成数据集
vector<int> data_set(1000);
for (int i = 0; i < data_set.size(); i++) {
data_set[i] = i;
}
// 将数据集随机打乱
random_shuffle(data_set.begin(), data_set.end());
// 划分数据集
int train_size = 700;
int valid_size = 200;
int test_size = 100;
vector<int> train_set(data_set.begin(), data_set.begin() + train_size);
vector<int> valid_set(data_set.begin() + train_size, data_set.begin() + train_size + valid_size);
vector<int> test_set(data_set.begin() + train_size + valid_size, data_set.begin() + train_size + valid_size + test_size);
// 输出数据集大小
cout << "Train set size: " << train_set.size() << endl;
cout << "Validation set size: " << valid_set.size() << endl;
cout << "Test set size: " << test_set.size() << endl;
return 0;
}
```
在上面的代码中,我们先生成了一个大小为1000的数据集,然后使用 `random_shuffle` 函数将数据集随机打乱。接着,我们指定了训练集大小为700,验证集大小为200,测试集大小为100,并使用 `vector` 类型将数据集划分为训练集、验证集和测试集。最后,我们输出了每个数据集的大小。
当然,还有其他的方式可以进行数据集的划分,例如使用交叉验证等方法。