sklearn cross_val_predict avec probabilités
objectif
Expliquer et montrer comment générer des prédictions out-of-fold avec predict_proba.
code minimal
import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import StratifiedKFold, cross_val_predict
X, y = make_classification(n_samples=1000, n_features=20, random_state=0)
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)
clf = LogisticRegression(max_iter=1000)
probas = cross_val_predict(clf, X, y, cv=cv, method="predict_proba")[:,1]
probas[:5]
utilisation
# courbe ROC out-of-fold
from sklearn.metrics import roc_auc_score
auc = roc_auc_score(y, probas)
print(round(float(auc), 3))
variante(s) utile(s)
# obtenir des logits via decision_function
scores = cross_val_predict(clf, X, y, cv=cv, method="decision_function")
scores[:5]
notes
- cross_val_predict évite le surapprentissage pour les diagnostics OOF.
- Attention aux fuites de prétraitements; encapsulez dans un Pipeline.