如何在 Python 中使用 scikit-learn 库将数据集拆分为训练集和测试集?
Scikit-learn,通常称为 sklearn,是 Python 中用于实现机器学习算法的库。它功能强大且健壮,因为它提供了各种工具来执行统计建模。
这包括使用 Python 中功能强大且稳定的接口进行分类、回归、聚类、降维等等。基于 Numpy、SciPy 和 Matplotlib 库构建。
在将输入数据传递给机器学习算法之前,必须将其拆分为训练数据集和测试数据集。
一旦数据拟合到所选模型,输入数据集就会在这个模型上进行训练。在训练过程中,模型从数据中学习。
它还学习对新数据进行泛化。测试数据集在模型训练期间不会被使用。
一旦所有超参数都已调整,并且最佳权重已设置,测试数据集就会提供给机器学习算法。
此数据集用于检查算法在新数据上的泛化程度。让我们看看如何使用 scikit-learn 库来拆分数据。
示例
from sklearn.datasets import load_iris my_data = load_iris() X = my_data.data y = my_data.target from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, y, test_size = 0.2, random_state = 2 ) print("The dimensions of the features of training data ") print(X_train.shape) print("The dimensions of the features of test data ") print(X_test.shape) print("The dimensions of the target values of training data ") print(y_train.shape) print("The dimensions of the target values of test data ") print(y_test.shape)
输出
The dimensions of the features of training data (120, 4) The dimensions of the features of test data (30, 4) The dimensions of the target values of training data (120,) The dimensions of the target values of test data (30,)
解释
- 导入所需的包。
- 为此所需的数据集也加载到环境中。
- 从数据集中分离特征和目标值。
- 训练数据和测试数据分别以 80% 和 20% 的比例进行拆分。
- 这意味着 20% 的数据将用于检查模型在新数据上的泛化程度。
- 这些拆分以及数据的维度将打印到控制台上。
广告