Für Fortgeschrittene: Parameter-Optimierung via Flow-Programmierung
In der Praxis sind die Herausforderungen zumeist kniffliger, weshalb man oft verschiedene Klassifikationsalgorithmen testen wird. Mit Knime ist das ziemlich einfach und genau deshalb ist es für Rapid Prototyping auch so interessant. Denn es müssen lediglich der Decision Tree Learner und der Decision Tree Predictor gegen andere Nodes ausgetauscht werden.
Jedoch können die meisten Klassifikationsalgorithmen auch durch eine Parametrierung verbessert werden, was selbst der recht einfache Decision Tree Learner anbietet. Nur: Woher weiß man, wie die Algorithmen parametriert werden müssen?
Der Trick ist, die 80 Prozent der Eingangsdaten noch einmal in einen echten Trainingsdatensatz und einen Validierungsdatensatz zu unterteilen. So kann die Parametrierung des Klassifikators verändert, dieser trainiert und auf den Validierungsdaten bewertet werden.
Anschließend verändert man wieder die Parametrierung und wiederholt das, bis die Performance auf den Validierungsdaten zufriedenstellend ist. Das klingt nach einer Menge Arbeit und ehrlicherweise ist es das auch.
Hier hilft Knime aber weiter. Durch einen Rechtsklick auf einen Node und die Wahl der Option Show Flow Variable Ports werden diese speziellen Ports aktiviert und erscheinen als kleine, rote Kugeln am Node. Diese Ports können ebenfalls zwischen Nodes verbunden werden.
Das Besondere ist, dass die Daten, die an diesen Ports anliegen, im Konfigurationsdialog eines Nodes referenziert werden können. So ist es möglich, die Konfiguration des Nodes dynamisch während der Workflow-Ausführung zu verändern, indem die referenzierten Daten verändert werden.
Werden nun zusätzlich noch über File > Install KNIME Extensions... die Knime Optimization Extension und die Knime Weka Data Mining Integration (3.7) Extension installiert, kann die Parameter-Optimierung komplett automatisiert werden.
Dabei verändert der im Screenshot gezeigte Flow die Parametrierung über einen Hillclimber-Optimierungsalgorithmus und durchläuft eine Schleife mehrmals, bei der er jedes Mal die Trainings- und Validierungsdatensätze zufällig neu zusammenstellt, den Klassifikator mit der aktuellen Parametrierung trainiert und evaluiert.
Da die Performance zusammen mit der Parametrierung protokolliert wird, kann am Ende aus der erzeugten Übersicht einfach die beste Parametrierung ausgewählt werden.
Dieses Tutorial hat hoffentlich den Einstieg in Knime erleichtert und Lust auf mehr geweckt. Knime ist eine leistungsstarke, flexible und modulare Plattform für alles rund um Daten und ermöglicht über seinen Low-Code-Ansatz selbst Einsteigern den Aufbau von Workflows für Anwendungen aus dem Bereich Data Science und maschinelles Lernen.
Profis können über Erweiterungen, Programmierschnittstellen und die Flow-Programmierung die Limitierungen des Low-Code-Prinzips aufheben und leistungsfähige Prototypen zur Verarbeitung von Daten aufsetzen.
Andreas Meier beschäftigt sich seit über 20 Jahren mit Künstlicher Intelligenz (KI) und verantwortet heute KI-Anwendungen bei einem Automobilhersteller.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Klassifikator trainieren und evaluieren |
Also Data Science wird ja genau deswegen häufig als der Schnittpunkt von...