Impara  /  Novità

Le novità di scikit-learn 1.9: callback, sparse array, supporto GPU e le deprecazioni da sistemare

Barre di avanzamento durante l'addestramento, sparse array al posto delle matrici, più modelli su GPU e un elenco di deprecazioni che diventeranno errori nella 1.11. Cosa è cambiato e cosa aggiornare nel tuo codice.

Novità7 min di letturaAggiornato il 17 ottobre 2026
PythonAnalisi dei datiAINovità
Tutte le guide e i cheat sheet

scikit-learn 1.9 è uscito a giugno 2026, e la release di bug fix 1.9.1 è arrivata a settembre. È la libreria dietro la maggior parte del machine learning classico in Python: regressione, classificazione, clustering e le pipeline intorno. Questa release riguarda meno i nuovi algoritmi e più l'esperienza d'uso: finalmente puoi seguire l'avanzamento dell'addestramento, più modelli girano su GPU e diversi difetti storici sono corretti. Inoltre fa partire il conto alla rovescia per una serie di deprecazioni che diventeranno errori nella 1.11.

Le tappe

  1. scikit-learn 1.9.0

    Nuove funzioni e deprecazioni.

  2. scikit-learn 1.9.1

    Bug fix, incluso il metadata routing nelle pipeline.

Terminal
pip install --upgrade scikit-learn

Callback: guarda i tuoi modelli mentre si addestrano

Una grid search lunga era una scatola nera: la avviavi e aspettavi. scikit-learn 1.9 aggiunge un'API di callback sperimentale, così gli estimator possono comunicare cosa stanno facendo durante fit. Include due callback pronte, sklearn.callback.ProgressBar e sklearn.callback.ScoringMonitor, e supporta l'avanzamento annidato, anche quando il lavoro gira in parallelo.

Dove funzionano le callback nella 1.9

LogisticRegression
Solo con solver="lbfgs".
GridSearchCV e RandomizedSearchCV
Più HalvingGridSearchCV e HalvingRandomSearchCV.
Pipeline
Avanzamento attraverso ogni passo.
StandardScaler
Il primo transformer a supportarle.

Sparse array al posto delle matrici sparse

SciPy sta passando dalle matrici sparse agli array sparsi, che si comportano più come gli array di NumPy (per esempio * significa moltiplicazione elemento per elemento, non prodotto tra matrici). scikit-learn ora può restituire entrambi. Il default è ancora "spmatrix" e il piano è passare a "sparray" tra qualche release, quindi conviene provarlo già adesso:

Python
import sklearn
sklearn.set_config(sparse_interface="sparray")

# From here on, scikit-learn returns SciPy sparse arrays
# (for example csr_array) wherever it supports the new setting.
print(sklearn.get_config()["sparse_interface"])   # "sparray"

Modelli più veloci e più accurati

Velocità e memoria

Novità
  • LogisticRegression con lbfgs calcola in float32 quando i dati sono float32, usando meno memoria
  • RidgeCV e RidgeClassifierCV sono più veloci e più stabili
  • SpectralEmbedding è più veloce
  • Lo screening gap safe accelera i regressori sparsi con perdita quadratica

Correttezza

Corretto
  • Pesi dei campioni gestiti correttamente in HistGradientBoosting, RandomForest ed ExtraTrees
  • Corretto il criterio friedman_mse di GradientBoosting (il parametro criterion è deprecato)
  • Il metodo yeo-johnson di PowerTransformer è numericamente più stabile
  • Alcuni punteggi e valori stimati possono cambiare leggermente dopo l'upgrade

Nuovi strumenti

Aggiunti
  • metrics.metric_at_thresholds calcola una metrica a ogni soglia
  • PrecisionRecallDisplay.from_cv_results disegna le curve da cross_validate
  • RandomForestRegressor gestisce i valori mancanti con l'errore assoluto
  • MiniBatchKMeans accetta i pesi dei campioni

Altre novità: la visualizzazione degli estimator addestrati nei notebook ora mostra gli attributi stimati, e la vista di ColumnTransformer mostra come vengono assemblate le colonne in uscita. narwhals è ora una dipendenza e gestisce l'output in dataframe, quindi set_output(transform="polars") e l'output pandas funzionano in modo più coerente.

Più scikit-learn gira su GPU

Grazie allo standard array API, scikit-learn può eseguire alcuni estimator direttamente su array PyTorch o CuPy, su GPU, senza convertirli in NumPy. La 1.9 aggiunge LogisticRegression e PoissonRegressor (con il solver lbfgs), Nystroem, FeatureUnion quando tutti i suoi passi lo supportano, e altre metriche come l'average precision.

Deprecazioni da sistemare prima della 1.11

Queste generano avvisi nella 1.9 e smetteranno di funzionare nella 1.11. Ognuna ha una soluzione semplice:

Python
# Deprecated: SVC(probability=True) is not thread-safe
from sklearn.svm import SVC
from sklearn.calibration import CalibratedClassifierCV

clf = CalibratedClassifierCV(SVC(), ensemble=False)
clf.fit(X_train, y_train)
proba = clf.predict_proba(X_test)

Altre deprecazioni e modifiche

lasso_path ed enet_path
n_alphas è deprecato. Passa alphas come intero o come lista.
GradientBoosting
Il parametro criterion è deprecato.
confusion_matrix_at_thresholds
Passa pos_label e sample_weight come argomenti con nome.
Metriche con testo
accuracy_score, confusion_matrix e altre ora danno errore quando y_true è testo e y_pred è numerico.

Un upgrade sicuro in quattro passi

  1. 1

    Fissa le versioni e crea un branch

    Fai l'upgrade in un ambiente o branch separato, non in produzione.

  2. 2

    Esegui con gli avvisi visibili

    Lancia i test con python -W error::FutureWarning per trovare ogni deprecazione.

  3. 3

    Confronta i punteggi

    Riaddestra i modelli principali e confronta le metriche; le correzioni su pesi e binning possono spostare un po' i risultati.

  4. 4

    Passa alla 1.9.1

    Corregge il metadata routing nelle pipeline, quindi preferiscila alla 1.9.0.

Verifica cosa hai capito

1/3Quali callback sono incluse in scikit-learn 1.9?

2/3Cosa sostituisce SVC(probability=True)?

3/3Cosa cambia sparse_interface="sparray"?

Stai aggiornando il tuo stack Python quest'autunno? Leggi la guida all'upgrade a pandas 3.0, le novità di Python 3.15 e prepara ambienti puliti con uv.

Fonti: il blog di scikit-learn "release 1.9" (12 giugno 2026) e le note di rilascio di scikit-learn 1.9, inclusa la 1.9.1 (settembre 2026).

Alessandro Ecclesie AgazziScritto da Alessandro Ecclesie Agazzi, analytics engineer a Londra. Aggiornato il 17 ottobre 2026. Chi sono

Ti è stato utile?

Qui escono regolarmente nuove guide e articoli sulle novità di dati e AI. Seguimi su LinkedIn o condividi questo articolo con un collega.