📌  相关文章
📜  训练测试拆分 sklearn - Python (1)

📅  最后修改于: 2023-12-03 15:41:43.638000             🧑  作者: Mango

训练测试拆分 sklearn - Python

训练测试拆分是构建机器学习模型中的重要步骤之一。在此步骤中,我们将数据集拆分成两个部分,即训练集和测试集。训练集用于训练模型,而测试集用于评估模型的性能。在Python中使用scikit-learn库可以很方便地实现训练测试拆分。在本文中,我们将介绍如何使用scikit-learn进行训练测试拆分。

什么是scikit-learn?

Scikit-learn是一个在Python中构建机器学习模型的库。它建立在NumPy、SciPy和matplotlib之上,并通过提供易于使用的API实现了许多机器学习算法。 它专注于监督学习(例如分类,回归和聚类)和无监督学习(例如降维和聚类)。 Scikit-learn还包括用于特征提取,特征选择和维度缩减的工具。

数据集

在本文中,我们将使用sklearn自带的iris数据集。iris数据集包含3种不同花的100个样本。 每个样本都有4个特征,即萼片和花瓣的长度和宽度。 我们将使用这个数据集来演示训练测试拆分的过程。

from sklearn.datasets import load_iris
iris = load_iris()
data = iris.data
target = iris.target
训练测试拆分

我们将使用train_test_split函数来将数据集拆分为训练集和测试集。train_test_split函数的参数分别是数据集、目标变量、测试集的大小和一个随机数种子。随机数种子可以帮助我们确保每次生成的训练和测试集是相同的。

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0.2, random_state=0)

上面的代码将数据集和目标变量分别分配给X和y。 test_size=0.2表示测试集占数据集的20%。 random_state=0是我们给随机数种子的值。

模型训练和测试

我们将使用逻辑回归模型对iris数据集进行分类。 我们将使用逻辑回归模型对训练数据进行训练,并对测试数据进行预测。 然后,我们将计算模型的精度。

from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

clf = LogisticRegression()
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)

print("Accuracy:", accuracy_score(y_test, y_pred))

上面的代码训练了逻辑回归分类器,并计算了它的精度。精度在0和1之间,如果为1,则表示分类器完美地分类了数据集,如果为0,则表示分类器无法对数据集进行分类。

结论

在本文中,我们学习了如何使用scikit-learn进行训练测试拆分。 我们将数据集拆分为训练集和测试集,并将逻辑回归分类器用于训练和测试数据。 最后,我们计算出模型的精度。 Scikit-learn是一个非常强大的库,包含许多有用的工具和算法。 它使构建机器学习模型变得非常容易。