那么让我们来讲解一下“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