在机器学习项目中,将数据集划分为训练集和测试集是一个非常重要的步骤。这样做可以帮助评估模型的性能,确保模型在未见过的数据上也能表现良好。Python的scikit-learn库提供了一个非常方便的工具train_test_split
,用于随机划分数据集。本文将详细介绍这个工具的使用方法和一些高级技巧。
首先,需要了解train_test_split
函数的基本参数。这个函数接受多个数组或矩阵作为输入,并将它们随机划分为训练集和测试集。主要参数包括:
函数返回一个列表,包含训练集和测试集的划分结果。如果输入是稀疏矩阵,输出也将是稀疏矩阵;否则,输出类型与输入类型相同。
下面是一个使用train_test_split
函数的简单示例。首先创建一个包含10个样本的数据集,并将其划分为训练集和测试集。
import numpy as np
from sklearn.model_selection import train_test_split
X = np.arange(10).reshape((5, 2))
y = range(5)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
print(X_train)
print(y_train)
print(X_test)
print(y_test)
在这个例子中,将数据集划分为训练集和测试集,测试集占总数据集的33%。还设置了随机数生成器的种子,以确保每次运行代码时划分结果相同。
除了基本的划分功能,train_test_split
还支持一些高级技巧,如分层抽样和不打乱数据的划分。