在Scikit-learn中,可以使用validation_curve函数来绘制验证曲线。该函数可以用于评估模型在不同超参数取值下的训练集和验证集上的表现。
以下是一个简单的示例,展示如何绘制一个决策树模型的最大深度对应的验证曲线:
import numpy as npimport matplotlib.pyplot as pltfrom sklearn.model_selection import validation_curvefrom 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模型,针对最大深度参数进行了验证曲线的绘制。您可以根据需要替换模型和超参数,来绘制其他模型的验证曲线。


