Python 实现训练集、测试集随机划分

1. 简介

在机器学习中,我们通常需要将数据集划分为训练集和测试集。训练集用于训练模型,而测试集用于评估模型的性能。一个常用的方法是随机划分数据集,即将数据集中的样本按照一定比例随机分配到训练集和测试集中。本文将介绍使用Python实现训练集和测试集的随机划分的方法。

2. 划分方法

对于给定的数据集,我们可以使用Python中的random模块来进行随机划分。具体步骤如下:

2.1 导入必要的库

import random

import numpy as np

在划分过程中,我们需要使用random模块中的函数和numpy库中的数组。

2.2 加载数据集

在进行划分之前,我们首先需要加载数据集。这里以鸢尾花数据集为例:

from sklearn.datasets import load_iris

iris = load_iris()

X = iris.data

y = iris.target

我们将数据集中的特征存储在X数组中,将标签存储在y数组中。

2.3 划分数据集

接下来,我们可以使用random模块中的函数将数据集划分为训练集和测试集。我们可以指定划分的比例,例如将70%的数据分配给训练集,30%的数据分配给测试集:

train_ratio = 0.7

test_ratio = 0.3

train_size = int(train_ratio * len(X))

test_size = int(test_ratio * len(X))

indices = np.arange(len(X))

random.shuffle(indices)

train_indices = indices[:train_size]

test_indices = indices[train_size:]

X_train = X[train_indices]

y_train = y[train_indices]

X_test = X[test_indices]

y_test = y[test_indices]

在这段代码中,我们首先计算训练集和测试集的大小,然后使用numpy中的arange函数生成一个与数据集样本个数相同长度的索引数组。接下来使用random模块中的shuffle函数将索引数组打乱顺序,以实现随机划分。然后,我们根据划分的索引将数据集划分为训练集和测试集,分别存储在X_train、y_train、X_test和y_test中。

3. 示例

下面我们给出一个完整的示例,展示如何使用Python实现训练集和测试集的随机划分:

import random

import numpy as np

from sklearn.datasets import load_iris

iris = load_iris()

X = iris.data

y = iris.target

train_ratio = 0.7

test_ratio = 0.3

train_size = int(train_ratio * len(X))

test_size = int(test_ratio * len(X))

indices = np.arange(len(X))

random.shuffle(indices)

train_indices = indices[:train_size]

test_indices = indices[train_size:]

X_train = X[train_indices]

y_train = y[train_indices]

X_test = X[test_indices]

y_test = y[test_indices]

4. 总结

本文介绍了使用Python实现训练集和测试集随机划分的方法。通过导入必要的库、加载数据集和划分数据集的步骤,我们可以轻松地将数据集划分为训练集和测试集。这样的划分方法能够帮助我们更好地评估模型的泛化能力。

后端开发标签