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
參數推斷出的名稱。如果score
為None
,如果negate_score
為False
,則會使用"Score"
,否則會使用"Negative score"
。如果scoring
是字串或可呼叫物件,我們會推斷出名稱。我們會將_
替換為空格,並將第一個字母大寫。如果negate_score
為False
,我們會移除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
。
另請參閱
範例
>>> 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()
- 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
中的折數,產生 (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
參數推斷出的名稱。如果score
為None
,如果negate_score
為False
,我們使用"Score"
,否則使用"Negative score"
。如果scoring
是字串或可呼叫物件,我們會推斷名稱。我們用空格取代_
並將第一個字母大寫。如果negate_score
為False
,我們會移除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
的其他關鍵字參數。
- 返回:
- display
ValidationCurveDisplay
儲存計算值的物件。
- display
範例
>>> 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()
- 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
參數推斷出的名稱。如果score
為None
,如果negate_score
為False
,我們使用"Score"
,否則使用"Negative score"
。如果scoring
是字串或可呼叫物件,我們會推斷名稱。我們用空格取代_
並將第一個字母大寫。如果negate_score
為False
,我們會移除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
的其他關鍵字參數。
- 返回:
- display
ValidationCurveDisplay
儲存計算值的物件。
- display