Machine Learning 简明教程

Machine Learning - Train and Test

在机器学习中,训练测试分割是一种常用的技术,用于评估机器学习模型的性能。训练测试分割的基本思想是将可用数据分成两个集合:训练集和测试集。训练集用于训练模型,而测试集用于评估模型的性能。

训练测试分割很重要,因为它使我们能够在模型以前未见过的数据上对其进行测试。这是很重要的,因为如果我们在训练模型所用的相同数据上对其进行评估,则该模型在训练数据上可能表现良好,但在新数据上可能无法很好地泛化。

Example

在 Python 中,可以使用 sklearn.model_selection 模块中的 train_test_split 函数将数据分割为训练集和测试集。示例实现如下 −

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# Load the iris dataset
data = load_iris()
X = data.data
y = data.target

# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Create a logistic regression model and fit it to the training data
model = LogisticRegression()
model.fit(X_train, y_train)

# Evaluate the model on the testing data
accuracy = model.score(X_test, y_test)
print(f"Accuracy: {accuracy:.2f}")

在此示例中,我们加载鸢尾花数据集,并使用 train_test_split 函数将其拆分为训练集和测试集。然后,我们创建一个逻辑回归模型,并将其拟合到训练数据中。最后,我们使用模型对象的 score 方法,针对测试数据评估模型。

train_test_split 函数中的 test_size 参数指定应用于测试的数据比例。在此示例中,我们将其设置为 0.2,这意味着 20% 的数据将用于测试,80% 的数据将用于训练。random_state 参数确保拆分是可重复的,因此每次运行代码时都会得到相同的拆分。

Output

执行此代码时,将生成以下输出 −

Accuracy: 1.00

总体而言,训练-测试拆分是评估机器学习模型性能的关键步骤。通过将数据拆分为训练集和测试集,我们可以确保模型不会过拟合训练数据,并且能很好地推广到新数据。