本文簡要介紹python語言中 sklearn.model_selection.cross_validate
的用法。
用法:
sklearn.model_selection.cross_validate(estimator, X, y=None, *, groups=None, scoring=None, cv=None, n_jobs=None, verbose=0, fit_params=None, pre_dispatch='2*n_jobs', return_train_score=False, return_estimator=False, error_score=nan)
通過交叉驗證評估指標,並記錄擬合/得分時間。
在用戶指南中閱讀更多信息。
- estimator:估計器對象實現‘fit’
用於擬合數據的對象。
- X:形狀類似數組 (n_samples, n_features)
要擬合的數據。例如,可以是列表或數組。
- y:形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類似數組,默認=無
在監督學習的情況下嘗試預測的目標變量。
- groups:形狀類似數組 (n_samples,),默認=None
將數據集拆分為訓練/測試集時使用的樣本的分組標簽。僅與 “Group” cv 實例(例如
GroupKFold
)結合使用。- scoring:str,可調用,列表,元組或字典,默認=無
評估cross-validated模型在測試集上的性能的策略。
如果
scoring
表示單個分數,則可以使用:- 單個字符串(參見評分參數:定義模型評估規則);
- 一個可調用的(見從度量函數定義你的評分策略) 返回單個值。
如果
scoring
代表多個分數,可以使用:- 唯一字符串的列表或元組;
- 一個可調用的返回一個字典,其中鍵是指標名稱,值是指標分數;
- 以度量名稱作為鍵和可調用值的字典。
有關示例,請參閱指定多個指標進行評估。
- cv:int,交叉驗證生成器或可迭代的,默認=無
確定交叉驗證拆分策略。 cv 的可能輸入是:
- 無,使用默認的 5 折交叉驗證,
- int,指定
(Stratified)KFold
中的折疊數, - CV分配器,
- 一個可迭代的 yield (train, test) 拆分為索引數組。
對於 int/None 輸入,如果估計器是分類器並且
y
是二進製或多類,則使用StratifiedKFold
。在所有其他情況下,使用Fold
。這些拆分器使用shuffle=False
實例化,因此拆分在調用之間將是相同的。有關可在此處使用的各種交叉驗證策略,請參閱用戶指南。
- n_jobs:整數,默認=無
並行運行的作業數。訓練估計器和計算分數在交叉驗證拆分上並行化。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有處理器。有關詳細信息,請參閱詞匯表。- verbose:整數,默認=0
詳細程度。
- fit_params:字典,默認=無
傳遞給估計器的 fit 方法的參數。
- pre_dispatch:int或str,默認=’2*n_jobs’
控製在並行執行期間分派的作業數。當調度的作業多於 CPU 可以處理的數量時,減少此數字有助於避免內存消耗的爆炸式增長。該參數可以是:
無,在這種情況下,所有作業都會立即創建和生成。將此用於輕量級和 fast-running 作業,以避免由於生成作業 on-demand 造成的延遲
一個 int,給出產生的總作業的確切數量
一個 str,給出一個表達式作為 n_jobs 的函數,如 ‘2*n_jobs’
- return_train_score:布爾,默認=假
是否包括火車分數。計算訓練分數用於深入了解不同的參數設置如何影響過擬合/欠擬合權衡。然而,在訓練集上計算分數可能在計算上很昂貴,並且不嚴格要求選擇產生最佳泛化性能的參數。
- return_estimator:布爾,默認=假
是否返回適合每個拆分的估計器。
- error_score:‘raise’ 或數字,默認=np.nan
如果估計器擬合中發生錯誤,則分配給分數的值。如果設置為‘raise’,則會引發錯誤。如果給出數值,則引發FitFailedWarning。
- scores:形狀浮點數組的字典 (n_splits,)
每次交叉驗證運行的估計器分數數組。
返回包含每個記分器的分數/時間數組的數組字典。此
dict
的可能鍵是:test_score
每個 cv 拆分的測試分數的分數數組。如果評分參數中有多個評分指標,則
test_score
中的後綴_score
更改為特定指標,例如test_r2
或test_auc
。train_score
每個 cv 拆分的火車分數的分數數組。如果評分參數中有多個評分指標,則
train_score
中的後綴_score
更改為特定指標,例如train_r2
或train_auc
。這僅在return_train_score
參數為True
時可用。fit_time
為每個 cv 拆分在訓練集上擬合估計器的時間。
score_time
為每個 cv 拆分在測試集上對估計器進行評分的時間。 (注意即使
return_train_score
設置為True
,也不包括在訓練集上評分的時間estimator
每個 cv 拆分的估計器對象。這僅在
return_estimator
參數設置為True
時可用。
參數:
返回:
例子:
>>> from sklearn import datasets, linear_model >>> from sklearn.model_selection import cross_validate >>> from sklearn.metrics import make_scorer >>> from sklearn.metrics import confusion_matrix >>> from sklearn.svm import LinearSVC >>> diabetes = datasets.load_diabetes() >>> X = diabetes.data[:150] >>> y = diabetes.target[:150] >>> lasso = linear_model.Lasso()
使用
cross_validate
進行單一指標評估>>> cv_results = cross_validate(lasso, X, y, cv=3) >>> sorted(cv_results.keys()) ['fit_time', 'score_time', 'test_score'] >>> cv_results['test_score'] array([0.33150734, 0.08022311, 0.03531764])
使用
cross_validate
進行多指標評估(請參閱scoring
參數文檔以獲取更多信息)>>> scores = cross_validate(lasso, X, y, cv=3, ... scoring=('r2', 'neg_mean_squared_error'), ... return_train_score=True) >>> print(scores['test_neg_mean_squared_error']) [-3635.5... -3573.3... -6114.7...] >>> print(scores['train_r2']) [0.28010158 0.39088426 0.22784852]
相關用法
- Python sklearn cross_val_predict用法及代碼示例
- Python sklearn cross_val_score用法及代碼示例
- Python sklearn confusion_matrix用法及代碼示例
- Python sklearn config_context用法及代碼示例
- Python sklearn classification_report用法及代碼示例
- Python sklearn chi2_kernel用法及代碼示例
- Python sklearn completeness_score用法及代碼示例
- Python sklearn calibration_curve用法及代碼示例
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
- Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
- Python sklearn VotingRegressor用法及代碼示例
- Python sklearn gen_batches用法及代碼示例
- Python sklearn ExpSineSquared用法及代碼示例
- Python sklearn MDS用法及代碼示例
- Python sklearn adjusted_rand_score用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
- Python sklearn GridSearchCV用法及代碼示例
- Python sklearn log_loss用法及代碼示例
- Python sklearn r2_score用法及代碼示例
- Python sklearn ndcg_score用法及代碼示例
- Python sklearn ShrunkCovariance用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.model_selection.cross_validate。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。