sklearn.model_selection.cross_val_predict?
sklearn.model_selection.cross_val_predict(estimator, X, y=None, *, groups=None, cv=None, n_jobs=None, verbose=0, fit_params=None, pre_dispatch='2*n_jobs', method='predict')
[源碼]
為每個輸入的數據點生成交叉驗證的估計。
根據交叉驗證參數切分數據。每個樣本恰好屬于一個測試集,并且其預測是通過在相應訓練集上擬合的估計器來計算的。
將這些預測傳遞到評估指標中可能不是衡量泛化性能的有效方法。除非所有測試集都具有相同的大小并且度量值是在樣本上分解的,否則結果可能與 cross_validate
和 cross_val_score
不同。
在用戶指南中閱讀更多內容。
參數 | 說明 |
---|---|
estimator | estimator object implementing ‘fit’ and ‘predict’ 用于擬合數據的對象。 |
X | array-like of shape (n_samples, n_features) 用于擬合的數據。例如一個列表或至少2維的數組。 |
y | array-like of shape (n_samples,) or (n_samples, n_outputs), default=None 在監督學習的情況下要嘗試預測的目標變量。 |
groups | array-like of shape (n_samples,), default=None 將數據集切分為訓練集或測試集時使用的樣本的分組標簽。僅與“ Group” cv 實例(例如 GroupKFold )結合使用。 |
cv | int, cross-validation generator or an iterable, default=None 確定交叉驗證切分策略。cv值可以輸入: - None,默認使用5折交叉驗證 - int,用于指定 (Stratified)KFold 的折數- CV splitter, - 可迭代輸出訓練集和測試集的切分作為索引數組 對于int或 None輸入,如果估計器是分類器,并且 y 是二分類或多分類,則使用StratifiedKFold 。在所有其他情況下,均使用KFold 。有關可在此處使用的各種交叉驗證策略,請參閱用戶指南。 在版本0.22中:如果 cv 為None,默認從3折更改為5折。 |
n_jobs | int, default=None 用于進行計算的CPU數量。 None 除非在joblib.parallel_backend 環境中,否則表示1 。 -1 表示使用所有處理器。有關更多詳細信息,請參見詞匯表。 |
verbose | int, default=0 詳細程度。 |
fit_params | dict, defualt=None 傳遞給估計器fit方法的參數。 |
pre_dispatch | int or str, default=’2*n_jobs’ 控制在并行執行期間分派的CPU內核數。當調度的CPU內核數量超過CPU的處理能力時,減少此數量可能有助于避免內存消耗激增。該參數可以是: - None,在這種情況下,所有CPU內核都將立即創建并產生,使它進行輕量級和快速運行的任務,以避免因按需生成作業而造成延遲 -int,給出所產生的總CPU內核數的確切數量 -str,根據n_jobs給出表達式,如'2*n_jobs' |
method | str, default=’predict’ 調用傳遞的估計器的傳遞方法名。對于method ='predict_proba',列對應于已排序的類。 |
返回值 | 說明 |
---|---|
predictions | ndarray 這是調用 method 的結果 |
另見:
cross_val_score
計算每個交叉驗證切分的準確率
cross_validate
計算每個交叉驗證切分的一個或多個準確率和時間
注
在訓練集部分中缺少一個或多個類的情況下,如果method
為每個類生成列,則需要為該類的所有實例分配默認分數 ,例如{'decision_function','predict_proba','predict_log_proba'}。對于predict_proba
該值為0。為了確保有限的輸出,在其他情況下,我們用最小的有限浮點型數據類型約等于負無窮大。
示例
>>> from sklearn import datasets, linear_model
>>> from sklearn.model_selection import cross_val_predict
>>> diabetes = datasets.load_diabetes()
>>> X = diabetes.data[:150]
>>> y = diabetes.target[:150]
>>> lasso = linear_model.Lasso()
>>> y_pred = cross_val_predict(lasso, X, y, cv=3)