Skip to content

第3章:模型训练和评估

在scikit-learn中,模型训练和评估是机器学习工作流的核心部分。本章将详细介绍如何使用scikit-learn进行模型训练、评估和持久化。

3.1 训练集和测试集分割

数据集的合理分割对于模型评估至关重要。

3.1.1 数据分割

使用train_test_split进行数据集的分割。

python
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=42)

3.2 交叉验证

交叉验证是评估模型性能的重要工具。

3.2.1 K折交叉验证

使用KFold进行K折交叉验证。

python
from sklearn.model_selection import KFold
kf = KFold(n_splits=5, shuffle=True, random_state=42)
for train_index, test_index in kf.split(X):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    # 训练和评估模型

3.3 性能评估指标

选择合适的评估指标来衡量模型性能。

3.3.1 准确率和精确率

使用accuracy_scoreprecision_score评估分类模型。

python
from sklearn.metrics import accuracy_score, precision_score
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)

3.4 模型持久化

保存训练好的模型以便后续使用。

3.4.1 保存和加载模型

使用joblib保存和加载模型。

python
from joblib import dump, load
dump(model, 'model.joblib')
model = load('model.joblib')

3.5 本章小结

本章介绍了模型训练和评估的基本流程,包括数据分割、交叉验证、性能评估和模型持久化。这些步骤对于构建和验证机器学习模型至关重要。