Letzten Freitag habe ich meinen Vortrag zu „Automated Machine Learning - do we need any more Data Scientists?“ beim SQL Saturday in Wien gehalten. Über den sinnvollen Einsatz von Automated Machine Learning und was es dabei zu beachten gibt, habe ich bereits in diesem Blogbeitrag geschrieben. Nachfolgend gehe ich nach auf ein paar Details aus meinem Vortrag ein. Dort habe ich die verfügbaren Pakete (H2O, TPOT, auto_ml, azureml, autosklearn, Hyperopt) kurz vorgestellt und die drei Varianten
- TPOT,
- Azure Auto ML und
- H2O
in einem Beispiel verglichen, um daraus eine Handlungsanleitung zu entwickeln. Ich habe auch bereits durchgeführte Vergleiche wie beispielsweise den von Gregorian Partners (https://medium.com/georgian-impact-blog/choosing-the-best-automl-framework-4f2a90cb1826), der als Ergebnis folgendes Diagramm liefert:
Man sieht hier beispielsweise, dass Art der Aufgabe ausschlaggebend ist, welches Paket gewinnt. Das Problem ist aber, dass es leider nicht nur auf die Art der Aufgabe (Regression, Klassifikation oder Zeitreihe), sondern auch die Struktur der Daten ankommt. Die Pakete unterstützen den User beim sogenannten „Feature Preprocessing“, „Selection“ and „Construction“ in unterschiedlicher Ausprägung. Als größtes Unterscheidungsmerkmal der Pakete könnte auch die grundsätzliche Fähigkeit, Zeitreihendaten nativ zu übernehmen, angeführt werden. Denn das kann derzeit in meiner Auswahl „nur“ Azure ML. Die daraus generierten Features sind dann in einer sehr leicht lesbaren Weise gestaltet (Tag, Stunde, Wochentag, Monat, Jahr, morgens/abends, Feiertag, …) Es ist ein wichtiges Merkmal, um wirklich für nicht-„Data Scientisten“ ein gutes Ergebnis zu liefern.
Neben den genannten Unterschieden ist wohl noch eine konkrete Maßnahme hervorzuheben: 70-90 Prozent des Daily Business eines Data Scientisten ist Data Cleaning und Data Understanding. Dies findet zum Großteil vor der Datenanalyse statt. Also selbst wenn der meiner Meinung nach lustigste, aber auch kleinste Teil der Arbeit eines Data Scientisten, nämlich die Analyse der Daten, automatisiert werden kann, bleiben zwei der wichtigsten Aufgaben immer noch bestehen:
- Die Daten aufbereiten und säubern, sodass das Modell richtig rechnen kann (Stichwort „bias“ oder Verzerrtheit uvm.), sowie
- die Daten und das Modell soweit „verstehen“, um die richtigen Algorithmen (Methoden) für das AutoML ein- bzw. ausschließen zu können.
Und auch eines ist immer noch offen, die ca. 20-30 Parameter, die bei einem Aufruf von (jeder) Auto ML Bibliothek übergeben werden müssen, sowie die wichtigste Auswahl:
Wie lange soll das ganze dauern, was gleichbedeutend ist mit „wie viel wird das ganze kosten“?
Wenn hier eine zu kurze Zeit gewählt wird, kommt einfach kein brauchbares Ergebnis. Aber falls zu lange gewählt wird, rechnet und zahlt man für „umsonst“, oder noch viel schlimmer, man läuft Gefahr zu stark zu „overfitten“ (siehe bspw. hier: Überanpassung durch zu viel Training).
Fragen dazu? Ich freue mich auf Ihre Nachricht.