繪製驗證曲線#
在此圖中,您可以看到 SVM 對於不同核心參數 Gamma 值的訓練分數和驗證分數。對於非常低的 Gamma 值,您可以看到訓練分數和驗證分數都很低。這稱為欠擬合。中等值的 Gamma 將導致兩個分數都很高,即分類器的表現相當好。如果 Gamma 太高,分類器將會過擬合,這意味著訓練分數很好,但驗證分數很差。

import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import load_digits
from sklearn.model_selection import ValidationCurveDisplay
from sklearn.svm import SVC
X, y = load_digits(return_X_y=True)
subset_mask = np.isin(y, [1, 2]) # binary classification: 1 vs 2
X, y = X[subset_mask], y[subset_mask]
disp = ValidationCurveDisplay.from_estimator(
SVC(),
X,
y,
param_name="gamma",
param_range=np.logspace(-6, -1, 5),
score_type="both",
n_jobs=2,
score_name="Accuracy",
)
disp.ax_.set_title("Validation Curve for SVM with an RBF kernel")
disp.ax_.set_xlabel(r"gamma (inverse radius of the RBF kernel)")
disp.ax_.set_ylim(0.0, 1.1)
plt.show()
腳本總運行時間:(0 分鐘 0.662 秒)
相關範例