关键词

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

那么让我们来讲解一下“Python 实现训练集、测试集随机划分”的完整攻略吧。

什么是训练集与测试集

在机器学习领域,我们经常会用到训练集和测试集。训练集是用来训练机器学习算法模型的数据集,而测试集则是用来验证模型的准确性和泛化能力的数据集。

通常情况下,训练集和测试集是从同一个数据集中划分而来的,其中训练集占据了大部分数据,用来训练模型;而测试集则是用来检验模型的精确度和泛化能力。

训练集和测试集的划分方法

在Python中,我们可以使用sklearn库来进行数据集的划分,sklearn库中的train_test_split()函数可以帮助我们将数据集划分为训练集和测试集。train_test_split()函数主要包含以下四个参数:

  • arrays

需要划分的数据集,可以是NumPy数组,Pandas的 DataFrame或Series,Python 的 list等。

  • test_size

测试集大小的比例。测试集大小可以是浮点数(0到1之间),表示测试集所占的比例;也可以是整数,表示测试集所包含的样本数量。例如,test_size=0.2表示“划分出20%的测试集”;test_size=50表示“划分出50个样本的测试集”。

  • train_size

训练集大小的比例。如果设定了test_size,则该参数会自动设置,但是如果没有设定test_size,则需要设置该参数。

  • random_state

随机种子,默认为None,如果指定了该参数值,则每次运行该代码时,生成的随机结果都是一致的。

示例一:将数据集随机划分为训练集和测试集

现在,我们来进行一个数据集划分的示例。首先,我们需要导入相关的库:

import numpy as np
from sklearn.model_selection import train_test_split

接下来,我们生成一个包含100个元素的随机数组:

x = np.random.rand(100)

通过使用train_test_split()函数,我们可以将这个随机数组划分为训练集和测试集。假设我们希望将数据集划分为80%的训练集和20%的测试集,代码如下所示:

x_train, x_test = train_test_split(x, test_size=0.2)

这里,我们不需要指定train_size参数,因为它会默认设置为测试集之外的其余数据。上述代码会将数据集随机划分,并将划分结果分别保存在x_train和x_test两个变量中。

示例二:将数据集和标签随机划分为训练集和测试集

除了划分数据集之外,有时候我们还需要将标签随机划分为训练集和测试集。这里我们假设我们有一个包含100个样本和对应标签的数据集,代码如下所示:

x = np.random.rand(100, 5) # 100个样本,每个样本有5个特征
y = np.random.randint(2, size=100) # 100个标签,取值为0或1

我们可以使用train_test_split()函数将这个数据集和标签随机划分为训练集和测试集。我们依然希望将数据集划分为80%的训练集和20%的测试集,代码如下所示:

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)

这里,除了数据集之外,我们还需要传入y参数,以保证标签的随机划分。上述代码会将x和y随机划分,并将划分结果分别保存在x_train、x_test、y_train、y_test四个变量中。

总结

综上所述,我们可以使用Python的sklearn库中的train_test_split()函数来随机划分数据集和标签,划分后的数据集可以用于机器学习算法的训练和测试。

本文链接:http://task.lmcjl.com/news/5034.html

展开阅读全文