解释如何使用scikit-learn库拆分数据集,以便在Python中进行训练和测试?

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("训练数据特征的维度 ")
print(X_train.shape)
print("测试数据特征的维度 ")
print(X_test.shape)
print("训练数据目标值的维度 ")
print(y_train.shape)
print("测试数据目标值的维数 ")
print(y_test.shape)

输出结果

训练数据特征的维度
(120, 4)
测试数据特征的维度
(30, 4)
训练数据目标值的维度
(120,)
测试数据目标值的维数
(30,)

说明

  • 所需的包已导入。

  • 为此所需的数据集也已加载到环境中。

  • 特征和目标值与数据集分开。

  • 训练和测试数据的比例分别为80%和20%。

  • 这意味着 20% 的数据将用于检查模型对新数据的概括程度。

  • 这些拆分以及数据的维度都打印在控制台上。