在Scikit-learn中,可以使用validation_curve函数来绘制验证曲线。该函数可以用于评估模型在不同超参数取值下的训练集和验证集上的表现。
以下是一个简单的示例,展示如何绘制一个决策树模型的最大深度对应的验证曲线:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import validation_curve
from sklearn.tree import DecisionTreeClassifier
# 创建决策树模型
model = DecisionTreeClassifier()
# 定义不同的最大深度取值范围
param_range = np.arange(1, 10)
# 使用validation_curve函数计算训练集和验证集的得分
train_scores, test_scores = validation_curve(
model, X, y, param_name="max_depth", param_range=param_range,
scoring="accuracy", n_jobs=1)
# 计算平均得分
train_scores_mean = np.mean(train_scores, axis=1)
test_scores_mean = np.mean(test_scores, axis=1)
# 绘制验证曲线
plt.figure()
plt.plot(param_range, train_scores_mean, label="Training score", color="r")
plt.plot(param_range, test_scores_mean, label="Cross-validation score", color="b")
plt.xlabel("max_depth")
plt.ylabel("Score")
plt.title("Validation Curve")
plt.legend(loc="best")
plt.show()
在这个示例中,我们使用DecisionTreeClassifier模型,针对最大深度参数进行了验证曲线的绘制。您可以根据需要替换模型和超参数,来绘制其他模型的验证曲线。