ValidationCurveDisplay#

class sklearn.model_selection.ValidationCurveDisplay(*, param_name, param_range, train_scores, test_scores, score_name=None)[原始碼]#

驗證曲線視覺化。

建議使用 from_estimator 來建立 ValidationCurveDisplay 的實例。所有參數都會儲存為屬性。

請在 使用者指南 中閱讀更多關於視覺化 API 的一般資訊,以及關於驗證曲線視覺化的 詳細文件

在 1.3 版本中加入。

參數:
param_namestr

已變更的參數名稱。

param_range形狀為 (n_ticks,) 的類陣列

已評估的參數值。

train_scores形狀為 (n_ticks, n_cv_folds) 的 ndarray

在訓練集上的分數。

test_scores形狀為 (n_ticks, n_cv_folds) 的 ndarray

在測試集上的分數。

score_namestr,預設值=None

validation_curve 中使用的分數名稱。它會覆蓋從 scoring 參數推斷出的名稱。如果 scoreNone,如果 negate_scoreFalse,則會使用 "Score",否則會使用 "Negative score"。如果 scoring 是字串或可呼叫物件,我們會推斷出名稱。我們會將 _ 替換為空格,並將第一個字母大寫。如果 negate_scoreFalse,我們會移除 neg_ 並將其替換為 "Negative",否則只會移除它。

屬性:
ax_matplotlib 軸

具有驗證曲線的軸。

figure_matplotlib 圖形

包含驗證曲線的圖形。

errorbar_matplotlib Artist 清單或 None

std_display_style"errorbar" 時,這是一個 matplotlib.container.ErrorbarContainer 物件的清單。如果使用其他樣式,則 errorbar_None

lines_matplotlib Artist 清單或 None

std_display_style"fill_between" 時,這是一個對應於平均訓練和測試分數的 matplotlib.lines.Line2D 物件的清單。如果使用其他樣式,則 line_None

fill_between_matplotlib Artist 清單或 None

std_display_style"fill_between" 時,這是一個 matplotlib.collections.PolyCollection 物件的清單。如果使用其他樣式,則 fill_between_None

另請參閱

sklearn.model_selection.validation_curve

計算驗證曲線。

範例

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.model_selection import ValidationCurveDisplay, validation_curve
>>> from sklearn.linear_model import LogisticRegression
>>> X, y = make_classification(n_samples=1_000, random_state=0)
>>> logistic_regression = LogisticRegression()
>>> param_name, param_range = "C", np.logspace(-8, 3, 10)
>>> train_scores, test_scores = validation_curve(
...     logistic_regression, X, y, param_name=param_name, param_range=param_range
... )
>>> display = ValidationCurveDisplay(
...     param_name=param_name, param_range=param_range,
...     train_scores=train_scores, test_scores=test_scores, score_name="Score"
... )
>>> display.plot()
<...>
>>> plt.show()
../../_images/sklearn-model_selection-ValidationCurveDisplay-1.png
classmethod from_estimator(estimator, X, y, *, param_name, param_range, groups=None, cv=None, scoring=None, n_jobs=None, pre_dispatch='all', verbose=0, error_score=nan, fit_params=None, ax=None, negate_score=False, score_name=None, score_type='both', std_display_style='fill_between', line_kw=None, fill_between_kw=None, errorbar_kw=None)[原始碼]#

從估計器建立驗證曲線顯示。

請在 使用者指南 中閱讀更多關於視覺化 API 的一般資訊,以及關於驗證曲線視覺化的 詳細文件

參數:
estimator實作「fit」和「predict」方法的物件類型

此類型的物件,將為每次驗證進行複製。

X形狀為 (n_samples, n_features) 的類陣列

訓練資料,其中 n_samples 是樣本數,而 n_features 是特徵數。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列,或 None

相對於 X 的分類或迴歸目標;無監督學習則為 None。

param_namestr

將要變化的參數名稱。

param_range形狀為 (n_values,) 的類陣列

將要評估的參數值。

groups形狀為 (n_samples,) 的類陣列,預設值為 None

將資料集分割為訓練/測試集時使用的樣本群組標籤。僅與「Group」cv 實例(例如,GroupKFold)結合使用。

cvint、交叉驗證產生器或可迭代物件,預設值為 None

決定交叉驗證分割策略。cv 的可能輸入包括:

  • None,使用預設的 5 折交叉驗證,

  • int,以指定 (Stratified)KFold 中的折數,

  • CV 分割器,

  • 產生 (train, test) 分割作為索引陣列的可迭代物件。

對於 int/None 輸入,如果估計器是分類器且 y 是二元或多類別,則使用 StratifiedKFold。 在所有其他情況下,使用 KFold。 這些分割器以 shuffle=False 實例化,因此分割在不同呼叫之間將會相同。

有關這裡可以使用的各種交叉驗證策略,請參閱使用者指南

scoringstr 或可呼叫物件,預設值為 None

字串(請參閱評分參數:定義模型評估規則)或帶有簽名 scorer(estimator, X, y) 的評分器可呼叫物件/函式(請參閱可呼叫的評分器)。

n_jobsint,預設值為 None

並行執行的任務數。 訓練估計器和計算分數會在不同的訓練和測試集上並行化。 除非在 joblib.parallel_backend 內容中,否則 None 表示 1。 -1 表示使用所有處理器。 有關詳細資訊,請參閱詞彙表

pre_dispatchint 或 str,預設值為 ‘all’

並行執行預先調度的任務數(預設值為全部)。此選項可以減少配置的記憶體。str 可以是像 ‘2*n_jobs’ 這樣的表達式。

verboseint,預設值為 0

控制詳細程度:越高,訊息越多。

error_score‘raise’ 或數值,預設值為 np.nan

如果估計器擬合時發生錯誤,則分配給分數的值。如果設定為 ‘raise’,則會引發錯誤。如果給定數值,則會引發 FitFailedWarning。

fit_paramsdict,預設值為 None

要傳遞給估計器擬合方法的參數。

axmatplotlib Axes,預設值為 None

要在其上繪圖的軸物件。如果為 None,則會建立新的圖形和軸。

negate_scorebool,預設值為 False

是否反轉透過 validation_curve 獲得的分數。當使用 scikit-learn 中由 neg_* 表示的錯誤時,這特別有用。

score_namestr,預設值=None

用於裝飾圖表 y 軸的分數名稱。 它將覆蓋從 scoring 參數推斷出的名稱。如果 scoreNone,如果 negate_scoreFalse,我們使用 "Score",否則使用 "Negative score"。如果 scoring 是字串或可呼叫物件,我們會推斷名稱。我們用空格取代 _ 並將第一個字母大寫。如果 negate_scoreFalse,我們會移除 neg_ 並將其取代為 "Negative",否則只會移除它。

score_type{“test”, “train”, “both”},預設值為 “both”

要繪製的分數類型。 可以是 "test""train""both" 之一。

std_display_style{“errorbar”, “fill_between”} 或 None,預設值為 “fill_between”

用於顯示平均分數周圍分數標準差的樣式。如果為 None,則不顯示標準差的表示。

line_kwdict,預設值為 None

傳遞給用於繪製平均分數的 plt.plot 的其他關鍵字參數。

fill_between_kwdict,預設值為 None

傳遞給用於繪製分數標準差的 plt.fill_between 的其他關鍵字參數。

errorbar_kwdict,預設值為 None

傳遞給用於繪製平均分數和標準差分數的 plt.errorbar 的其他關鍵字參數。

返回:
displayValidationCurveDisplay

儲存計算值的物件。

範例

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.model_selection import ValidationCurveDisplay
>>> from sklearn.linear_model import LogisticRegression
>>> X, y = make_classification(n_samples=1_000, random_state=0)
>>> logistic_regression = LogisticRegression()
>>> param_name, param_range = "C", np.logspace(-8, 3, 10)
>>> ValidationCurveDisplay.from_estimator(
...     logistic_regression, X, y, param_name=param_name,
...     param_range=param_range,
... )
<...>
>>> plt.show()
../../_images/sklearn-model_selection-ValidationCurveDisplay-2.png
plot(ax=None, *, negate_score=False, score_name=None, score_type='both', std_display_style='fill_between', line_kw=None, fill_between_kw=None, errorbar_kw=None)[原始碼]#

繪製視覺化圖表。

參數:
axmatplotlib Axes,預設值為 None

要在其上繪圖的軸物件。如果為 None,則會建立新的圖形和軸。

negate_scorebool,預設值為 False

是否反轉透過 validation_curve 獲得的分數。當使用 scikit-learn 中由 neg_* 表示的錯誤時,這特別有用。

score_namestr,預設值=None

用於裝飾圖表 y 軸的分數名稱。 它將覆蓋從 scoring 參數推斷出的名稱。如果 scoreNone,如果 negate_scoreFalse,我們使用 "Score",否則使用 "Negative score"。如果 scoring 是字串或可呼叫物件,我們會推斷名稱。我們用空格取代 _ 並將第一個字母大寫。如果 negate_scoreFalse,我們會移除 neg_ 並將其取代為 "Negative",否則只會移除它。

score_type{“test”, “train”, “both”},預設值為 “both”

要繪製的分數類型。 可以是 "test""train""both" 之一。

std_display_style{“errorbar”, “fill_between”} 或 None,預設值為 “fill_between”

用於顯示平均分數周圍分數標準差的樣式。如果為 None,則不顯示標準差表示。

line_kwdict,預設值為 None

傳遞給用於繪製平均分數的 plt.plot 的其他關鍵字參數。

fill_between_kwdict,預設值為 None

傳遞給用於繪製分數標準差的 plt.fill_between 的其他關鍵字參數。

errorbar_kwdict,預設值為 None

傳遞給用於繪製平均分數和標準差分數的 plt.errorbar 的其他關鍵字參數。

返回:
displayValidationCurveDisplay

儲存計算值的物件。