In diesem Blogbeitrag schauen wir uns Azure Machine Learning an. Das Tool eignet sich für Data-Science-Einsteiger genauso wie für Experten, da die graphische Oberfläche intuitiv bedienbar und gleichzeitig flexibel ist.
Quelle: Microsoft (https://studio.azureml.net/)
Mittlerweile bietet Microsoft mit der Azure Cloud viele Dienste, die bisher in der Regel on premise – also auf den eigenen Servern – gehostet wurden. Ebenso gibt es für Machine Learning ein gutes Tool aus dem Hause Microsoft für die Cloud und ganz ohne Installationen.
Um mit dem Microsoft Azure Machine Learning Studio zu arbeiten, ist lediglich eine Anmeldung auf der folgenden Seite Voraussetzung. Anschließend kann direkt mit dem Tool gestartet werden:
Die so genannten Experimente sind kostenfrei, eine Berechnung der CPU-Zeit findet hier nicht statt. Erst bei größeren Projekten wird die CPU-Zeit kostenpflichtig. Die genauen Preise können bei Microsoft nachgelesen werden: https://azure.microsoft.com/de-de/pricing/details/machine-learning/.
Im Übrigen sind die hier gezeigten Screenshots immer in englischer Sprache. Das hat in der Benutzung den Vorteil, dass man bei Schwierigkeiten mit einzelnen Funktionen automatisch den richtigen Begriff auf Englisch googelt und mehr Ergebnisse erhält.
Ein Experiment für den Einstieg
Um die Möglichkeiten und die Bedienung des AzureML-Studios zeigen zu können, bediene ich mich des Titanic-Datensatzes. Der Datensatz ist der Klassiker für den Test von Machine-Learning-Algorithmen und beinhaltet u. a. folgende Informationen über die Passagiere der Titanic: Name, Alter, Buchungsklasse, Geschlecht und Überlebensstatus.
Um einen neuen Datensatz hochzuladen (z. B. als csv-Datei), geht man im Studio erst in den Bereich der Datensätze und klickt dann unten links auf „New“.
Anschließend wählt man „from local file“ aus und gibt die Rahmendaten der hochzuladenden Datei an.
Das neue Experiment kann über die linke Navigationsleiste aufgerufen bzw. erzeugt werden. Zunächst lädt man die gerade hochgeladenen Daten in diese Ansicht, indem man bei „Saved Datasets“ den Datensatz heraussucht und per Drag and Drop auf die graue Fläche zieht.
Es werden in den nächsten Schritten Daten sowohl für das Trainieren eines Modells als auch für die Auswertung des Modells benötigt. Daher sollte der Datensatz zunächst einmal in zwei Teile gesplittet werden. Die dafür vorgesehene Funktion findet sich unter „Data Transformation“.
Nachdem diese Funktion in das Experiment gezogen wurde, können die Eigenschaften noch konfiguriert werden. In diesem Fall werden 70 % der Daten für das Trainieren des Modells genutzt und 30 % für die spätere Auswertung.
Im nächsten Schritt sucht man sich ein passendes Modell aus den zur Verfügung stehenden aus – in diesem Fall wird das „Two-Class Neural Network“ genutzt und mit dem Baustein „Train Model“ verknüpft. An dieser Stelle muss zudem festgelegt werden, welche Spalte in unseren Daten dieses Modell später voraussagen soll. Für den zugrundeliegenden Titanic-Datensatz ist das die Spalte „Survived“.
Zusätzlich kann man den hochgeladenen Datensatz vor dem Trennen noch bereinigen, sodass nur die wirklich relevanten Daten herausgefiltert werden. In diesem Fall werden nur Spalten ausgeschlossen, die für die Auswertung uninteressant sind (z. B. Namen).
Für eine testweise Ausführung mit dem anderen Teil der Daten werden diese zusammen mit dem trainierten Modell dem Baustein „Score Model“ zugeführt. Nach der Ausführung, die durch den Klick auf „Run“ gestartet wird, kann die Visualisierung der Ergebnisse durch einen Rechtsklick auf den grauen „Ausgang“ des Bausteins „Score Model“ angezeigt werden.
Die teilweise geringen Prozentpunkte der Ergebnisse verwundern auf den ersten Blick. Warum entscheidet sich das trainierte Modell für „nicht überlebt“, obwohl die zugehörige Wahrscheinlichkeit unter 13 Prozent liegt? Die Antwort: Weil die Wahrscheinlichkeit für „überlebt“ noch geringer gewesen wäre. Man beachte hier, die Gegenwahrscheinlichkeit „-1-Wahrscheinlichkeit“ entspricht: P (überlebt) ≠ 1 – P (nicht überlebt).
Im Baustein „Evaluate Model“ wird die Ausführung des Modells statisch ausgewertet. Die dort gezeigten Daten eignen sich gut, um die Ergebnisse mit anderen Experimenten zu vergleichen. So könnte man bei sonst gleichen Voraussetzungen ein anderes Modell wählen und prüfen, welches bessere Ergebnisse liefert.
Der Titanic-Datensatz ist vergleichsweise klein und die Ergebnisse sind entsprechend schwach. Auch hier gilt der Spruch: „Garbage in, Garbage out“. Mit anderen Worten: Die Ergebnisse können nicht besser sein als die Daten, auf denen sie beruhen.
Das gesamte Experiment umfasst schlussendlich sieben Bausteine und kann ohne höhere Mathematik innerhalb von etwa 30 Minuten problemlos aufgesetzt werden. Es eignet sich auch gut als Vorlage für weitere, ähnlich einfach gehaltene Projekte.
Auf diese Weise können aber auch komplexe Machine-Learning-Algorithmen ausprobiert, angelernt und für Datenauswertungen genutzt werden – ohne hierfür teure Hardware und Softwarelizenzen anschaffen zu müssen.