© buffaloboy/Shutterstock.com
Visualisieren von Machine-Learning-Daten in VS Code

Erklärbare Modelle schaffen Vertrauen


Visualisierungen im Code haben in den letzten Jahren erfolgversprechende Innovationen hervorgebracht. Hierzu zählen die durchgehende Integration einiger Spezialtechnologien des Machine-Learning-Mappings wie die Einbindung des Jupyter-Notebook-Formats in VS Code, MS Power BI sowie das Aufrufen von Tensorboard zur Darstellung und Protokollierung der Trainingsergebnisse. Dieser Artikel verdeutlicht, wie weit die Codevisualisierung vorangeschritten ist und wie eigene Projekte davon profitieren.

Ein unmittelbarer Nutzen von Codevisualisierungen ist bereits heute klar: Bereiche wie die Robotik, Expertensysteme, mathematische Optimierung, Anomaliedetektion, Merkmalsreduktion oder modellbasierte Regelung wären besser erklärbar, wenn das Modell die gefundenen Merkmale zur Entscheidung direkt durch eine entsprechende Grafik aufzeigen könnte. Dazu dienen die in diesem Artikel beschriebenen Grundlagen.

Das Ziel ist es, so genau wie möglich zu verstehen, warum und wie eine KI bestimmte Entscheidungen trifft. Bei Bilderkennungsalgorithmen zeigt beispielsweise eine farbige Heatmap die Stellen eines Bildes, die besonders relevant für dessen Klassifizierung sind. Wir beginnen mit einem einfachen Datenset eines Klassifikationssystems und visualisieren die Entscheidung der Klassifikation mit einer Konfusionsmatrix und zugehöriger Heatmap. Als IDE nutzen wir Visual Studio Code mit den beiden Konfigurationsfiles tasks.json und dem projektspezifischen settings.json inklusive Test-Units und Pfadangaben (Listing 1 und 2).

Listing 1: viper2\.vscode\settings.json

{ "python.pythonPath": "C:\\Users\\Max\\AppData\\Local\\Programs\\Python\\Python37\\python.exe", "python.testing.pytestArgs": [ "freshonion" ], "python.testing.unittestEnabled": false, "python.testing.nosetestsEnabled": false, "python.testing.pytestEnabled": false, "python.testing.unittestArgs": [ "-v", "-s", "./freshonion", "-p", "*test.py" ], "python.testing.promptToConfigure": false }

Listing 2: \viper2\.vscode\tasks.json

{  // See https://go.microsoft.com/fwlink/ // ?LinkId=733558 for the documentation // about the tasks.json format build from // older win8.1. to win10.2 by max "version": "2.0.0", "tasks": [ { "label": "buildpython", "type": "shell", "command": "C:\\Users\\Max\\AppData\\Local\\Programs\\Python\\Python37\\python.exe", "args": ["${file}"], "showOutput":"always", "problemMatcher": [], "group": { "kind": "build", "isDefault": true } } ] }

Als Einstieg in VS Code mit Python empfiehlt sich das Tutorial [1], das Microsoft mit der aktuellen Version aus März 2020 (Version 1.44) publiziert hat: „Tutorials for creating Python containers and building Data Science models“. Wir starten mit den importierten Modulen in Listing 3 und nennen unser Skript logregclassifier2.py [2].

Listing 3

// get the modules we need import matplotlib.pyplot as plt import numpy as np from sklearn.linear_model import LogisticRegression from sklearn.metrics import classification_report, confusion_matrix

Das Datenset

Die Daten unseres Beispiels sind bewusst neutral und einfach gehalten, um eine optimale Verständlichkeit zu gewährleisten. Als Trainingsdaten dient eine Datenreihe von 0 bis 9 (Samples), um ein Target mit 0 und 1 zu klassifizieren. Die Reihe könnte etwa zehn Patienten repräsentieren, die einen medizinischen Test absolvieren. Bei im Voraus bekannten Labels (Target) spricht man auch von Supervised Learning. Wir wollen nun das System soweit trainieren, dass die tiefen Zahlen wahrscheinlich mit 0 und die hohen Zahlen wahrscheinlich mit 1 zu klassifizieren sind (Listing 4).

X=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] y=[0, 0, 0, 0, 1, 1, 1, 1, 1, 1]

Listing 4

// arrays for the input (X) and output (y) values: X = np.arange(10).reshape(-1, 1) y = np.array([0, 0, 0, 0, 1, 1, 1, 1, 1, 1])

Wir können mit dem Befehl np.arange(10) ein Array erstellen, das alle ganzen Zahlen von 0 bis 9 enthält. Als Konvention betrachten wir x als zweidimensionales Array (Matrix) und y als eindimensionales Target (Vektor). Reshape (-1,1) bedeutet, dass wir nur ein Feature als Kolonne haben. Features sind die Merkmal...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang