Artificial Intelligence (AI)

Scikit-learn Visualization Guide: Making Models Speak | by Peng Qian | Mar, 2024

Written by smirow

Verwenden Sie die Display-API, um komplexen Matplotlib-Code zu ersetzen

Peng Qian
Auf dem Weg zur Datenwissenschaft
Scikit-learn-Visualisierungsleitfaden: Modelle zum Sprechen bringen.
Scikit-learn-Visualisierungsleitfaden: Modelle zum Sprechen bringen. Bild vom Autor

Auf dem Weg zum maschinellen Lernen ist das Erklären von Modellen mit Visualisierung ebenso wichtig wie das Trainieren dieser Modelle.

Eine gute Grafik kann uns auf leicht verständliche Weise zeigen, was ein Modell tut. Hier ist ein Beispiel :

Entscheidungsgrenzen zweier verschiedener Generalisierungsleistungen.
Entscheidungsgrenzen zweier verschiedener Generalisierungsleistungen. Bild vom Autor

Diese Grafik zeigt deutlich, dass sich das Modell rechts für denselben Datensatz besser verallgemeinern lässt.

Die meisten Bücher über maschinelles Lernen bevorzugen die Verwendung von Matplotlib-Rohcode zur Visualisierung, was zu Problemen führt:

  1. Sie müssen viel über das Zeichnen mit Matplotlib lernen.
  2. Der Ablaufverfolgungscode füllt Ihr Notizbuch und erschwert das Lesen.
  3. Manchmal benötigt man Bibliotheken von Drittanbietern, was in einem professionellen Umfeld nicht ideal ist.

Gute Nachrichten! Scikit-learn bietet jetzt an Display Klassen, die es uns ermöglichen, Methoden wie zu verwenden from_estimator Und from_predictions um das Zeichnen von Diagrammen für verschiedene Situationen erheblich zu vereinfachen.

Neugierig? Lassen Sie mich Ihnen diese coolen APIs zeigen.

Verwenden Sie utils.discovery.all_displays, um verfügbare APIs zu finden

Scikit-learn (sklearn) fügt immer hinzu Display API in neuen Versionen, daher ist es wichtig zu wissen, was in Ihrer Version verfügbar ist.

Sklearns utils.discovery.all_displays Hier können Sie sehen, welche Klassen Sie verwenden können.

from sklearn.utils.discovery import all_displays

displays = all_displays()
displays

In meinem Scikit-learn 1.4.0 sind beispielsweise diese Klassen verfügbar:

[('CalibrationDisplay', sklearn.calibration.CalibrationDisplay),
('ConfusionMatrixDisplay',
sklearn.metrics._plot.confusion_matrix.ConfusionMatrixDisplay),
('DecisionBoundaryDisplay',
sklearn.inspection._plot.decision_boundary.DecisionBoundaryDisplay),
('DetCurveDisplay', sklearn.metrics._plot.det_curve.DetCurveDisplay)…

About the author

smirow

Leave a Comment