Lernen  /  Neuigkeiten

Neu in scikit-learn 1.9: Callbacks, Sparse Arrays, GPU-Unterstützung und die Deprecations, die Sie beheben sollten

Fortschrittsbalken beim Training, Sparse Arrays statt Matrizen, mehr Modelle auf der GPU und eine Liste von Deprecations, die in 1.11 zu Fehlern werden. Was sich geändert hat und was Sie in Ihrem Code anpassen sollten.

Neuigkeiten7 Min. LesezeitAktualisiert am 17 Oktober 2026
PythonDatenanalyseKINeuigkeiten
Alle Leitfäden und Spickzettel

scikit-learn 1.9 erschien im Juni 2026, das Bugfix-Release 1.9.1 folgte im September. Es ist die Bibliothek hinter dem Großteil des klassischen Machine Learning in Python: Regression, Klassifikation, Clustering und die Pipelines drumherum. In diesem Release geht es weniger um neue Algorithmen als um das Arbeiten damit: Sie können endlich den Trainingsfortschritt verfolgen, mehr Modelle laufen auf der GPU, und mehrere altbekannte Eigenheiten sind behoben. Zugleich beginnt der Countdown für eine Reihe von Deprecations, die in 1.11 zu Fehlern werden.

Zeitplan der Releases

  1. scikit-learn 1.9.0

    Neue Funktionen und Deprecations.

  2. scikit-learn 1.9.1

    Fehlerbehebungen, unter anderem beim Metadata Routing in Pipelines.

Terminal
pip install --upgrade scikit-learn

Callbacks: Sehen Sie Ihren Modellen beim Training zu

Eine lange Grid Search war bisher eine Blackbox: starten und warten. scikit-learn 1.9 führt eine experimentelle Callback-API ein, damit Estimatoren während fit berichten können, was sie gerade tun. Mitgeliefert werden zwei Callbacks, sklearn.callback.ProgressBar und sklearn.callback.ScoringMonitor, und verschachtelter Fortschritt wird unterstützt, auch bei paralleler Ausführung.

Wo Callbacks in 1.9 funktionieren

LogisticRegression
Nur mit solver="lbfgs".
GridSearchCV und RandomizedSearchCV
Dazu HalvingGridSearchCV und HalvingRandomSearchCV.
Pipeline
Fortschritt über jeden Schritt.
StandardScaler
Der erste Transformer mit Unterstützung.

Sparse Arrays statt Sparse-Matrizen

SciPy wechselt von Sparse-Matrizen zu Sparse-Arrays, die sich eher wie NumPy-Arrays verhalten (zum Beispiel bedeutet * elementweise Multiplikation, nicht Matrixmultiplikation). scikit-learn kann jetzt beides liefern. Standard ist weiterhin "spmatrix", der Wechsel zu "sparray" ist für eines der nächsten Releases geplant. Es lohnt sich also, es schon jetzt auszuprobieren:

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"

Schnellere und genauere Modelle

Tempo und Speicher

Neu
  • LogisticRegression mit lbfgs rechnet in float32, wenn Ihre Daten float32 sind, und braucht weniger Speicher
  • RidgeCV und RidgeClassifierCV sind schneller und stabiler
  • SpectralEmbedding ist schneller
  • Gap Safe Screening beschleunigt Sparse-Regressoren mit quadratischem Verlust

Korrektheit

Behoben
  • Stichprobengewichte werden in HistGradientBoosting, RandomForest und ExtraTrees korrekt behandelt
  • Kriterium friedman_mse von GradientBoosting korrigiert (der Parameter criterion ist veraltet)
  • Die yeo-johnson-Methode von PowerTransformer ist numerisch stabiler
  • Manche Scores und geschätzten Werte können sich nach dem Upgrade leicht verschieben

Neue Werkzeuge

Hinzugefügt
  • metrics.metric_at_thresholds berechnet eine Metrik für jeden Schwellenwert
  • PrecisionRecallDisplay.from_cv_results zeichnet Kurven aus cross_validate
  • RandomForestRegressor verarbeitet fehlende Werte beim absoluten Fehler
  • MiniBatchKMeans akzeptiert Stichprobengewichte

Außerdem neu: Die Notebook-Anzeige trainierter Estimatoren zeigt jetzt die gelernten Attribute, und die Ansicht von ColumnTransformer zeigt, wie die Ausgabespalten zusammengesetzt werden. narwhals ist jetzt eine Abhängigkeit und übernimmt die DataFrame-Ausgabe, sodass set_output(transform="polars") und die pandas-Ausgabe einheitlicher funktionieren.

Mehr scikit-learn auf der GPU

Über den Array-API-Standard kann scikit-learn manche Estimatoren direkt auf PyTorch- oder CuPy-Arrays auf der GPU ausführen, ohne Umwandlung nach NumPy. Version 1.9 ergänzt LogisticRegression und PoissonRegressor (mit dem Solver lbfgs), Nystroem, FeatureUnion, wenn alle Schritte es unterstützen, sowie weitere Metriken wie die Average Precision.

Deprecations, die Sie vor 1.11 beheben sollten

Diese erzeugen in 1.9 Warnungen und funktionieren in 1.11 nicht mehr. Jede lässt sich einfach beheben:

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)

Weitere Deprecations und Änderungen

lasso_path und enet_path
n_alphas ist veraltet. Übergeben Sie alphas als Ganzzahl oder Liste.
GradientBoosting
Der Parameter criterion ist veraltet.
confusion_matrix_at_thresholds
Übergeben Sie pos_label und sample_weight als Schlüsselwortargumente.
Metriken mit Text
accuracy_score, confusion_matrix und andere melden jetzt einen Fehler, wenn y_true Text und y_pred numerisch ist.

Ein sicheres Upgrade in vier Schritten

  1. 1

    Versionen fixieren und branchen

    Aktualisieren Sie in einer eigenen Umgebung oder einem Branch, nicht in Produktion.

  2. 2

    Warnungen sichtbar machen

    Führen Sie Ihre Tests mit python -W error::FutureWarning aus, um jede Deprecation zu finden.

  3. 3

    Scores vergleichen

    Trainieren Sie wichtige Modelle neu und vergleichen Sie die Metriken; Korrekturen bei Gewichten und Binning können Ergebnisse leicht verschieben.

  4. 4

    Auf 1.9.1 gehen

    Es behebt das Metadata Routing in Pipelines, nutzen Sie es also statt 1.9.0.

Testen Sie Ihr Wissen

1/3Welche Callbacks bringt scikit-learn 1.9 mit?

2/3Was ersetzt SVC(probability=True)?

3/3Was ändert sparse_interface="sparray"?

Aktualisieren Sie diesen Herbst Ihren Python-Stack? Lesen Sie den Upgrade-Leitfaden für pandas 3.0, die Neuerungen in Python 3.15 und richten Sie saubere Umgebungen mit uv ein.

Quellen: der scikit-learn-Blog „release 1.9“ (12. Juni 2026) und die Release Notes zu scikit-learn 1.9, einschließlich 1.9.1 (September 2026).

Alessandro Ecclesie AgazziGeschrieben von Alessandro Ecclesie Agazzi, Analytics Engineer in London. Aktualisiert am 17 Oktober 2026. Über mich

War das hilfreich?

Hier erscheinen regelmäßig neue Leitfäden und Artikel zu Neuigkeiten rund um Daten und KI. Folgen Sie mir auf LinkedIn oder teilen Sie diesen Artikel mit Kollegen.