Prognosen für die zukünftige Geschäftsentwicklung zu erstellen ist in vielen Bereichen unabdingbar. Doch wie kann dies in der Cloud erfolgen? Welche Möglichkeiten gibt es, Forecasting mit Microsoft Azure durchzuführen? Und welches sind die besten Machine Learning Algorithmen dafür? Auf diese Fragen sollen einige Antworten gegeben werden.

Betrachten wir das Beispiel, dass für ein mittelständisches Unternehmen ein Forecasting über die Entwicklung der Verkaufszahlen für den Folgemonat durchgeführt werden soll. Dabei erfolgt die Vorhersage von zukünftigen

Verkaufszahlen auf der Basis von Vergangenheitswerten. Das Forecasting soll für jeden Tag des Folgemonats durchgeführt werden. Ziel des Ganzen sind bessere Planungsmöglichkeiten für notwendige Ressourcen, Personal, Marketingkampagnen und Produktionsvolumen.

Dafür betrachten die Datenanalysten zunächst die vorhandenen Daten, wobei die Datenqualität überprüft wird, sowie Eigenschaften wie z.B. saisonale Schwankungen, Trends und Ausreißer untersucht werden. Daraufhin kann mit der Vorgehensplanung begonnen werden.

Das geschilderte Szenario wurde anhand der Beispieldatensätze „Predict Future Sales“ von Kaggle verprobt. Diese beinhalten historische Verkaufsdaten auf Tagesbasis des Zeitraums 01.2013 bis 10.2015.

Dabei war ein wichtiger Punkt, die Ergebnisse der Forecastings anhand von Kennzahlen evaluieren zu können. Die Evaluierung der verwendeten Modelle erfolgte anhand der folgenden Kennzahlen:

  • RMSE: Der Root Mean Squared Error, ist eine Erweiterung von MSE und ist definiert als die Quadratwurzel des mittleren quadratischen Fehlers.
  • MAPE: Der Mean Absolute Percentage Error ist definiert als der prozentuale Mittelwert der absoluten Differenz zwischen prognostizierten Werten und wahren Werten, geteilt durch den wahren Wert.

Doch wie kann das Forecasting nun in der Azure Cloud durchgeführt werden? Dafür zur Einordnung erst ein paar Worte, was Microsoft Azure Machine Learning ist:

„Azure ML Ist ein Clouddienst zum Beschleunigen und Verwalten des gesamten Lebenszyklus von Machine Learning-Projekten.“

Es bietet unter anderem folgende Funktionen:

  • Erstellen und Bearbeiten von Jupyter Notebooks und Data Files
  • Ist mit grafischer Benutzeroberfläche und Code nutzbar
  • Anzeigen von Ausführungen, Metriken, Protokollen, Ausgaben usw.
  • Trainieren und Bereitstellen von Modellen
  • Verwalten von gemeinsamen Ressourcen
  • Unterstützen von verschiedensten Technologien wie:  Python SDK, PyTorch, TensorFlow, Scikit-learn, XGBoost, LightGBM, R, .NET
  • Einbinden von Daten aus verschiedensten Quellen

Doch welche Möglichkeiten hat Microsoft Azure Machine Learning durchzuführen?

Insbesondere folgende Möglichkeiten wurden betrachtet:

1. Azure ML: Jupyter Notebooks
Im Azure ML Studio können Jupiter Notebooks Out of the Box verwendet werden.

2. Automated ML
Mit Automated ML ist es in Azure möglich, fertige Machine Learning Pipelines zu verwenden, welche insbesondere für Klassifikation, Regression und Time Series Forecasting spezialisiert sind.

3. Azure ML: Designer
Mit dem Azure ML Designer ist es möglich, Machine Learning Pipelines mit einer grafischen Oberfläche zu erstellen.

4. Azure SDK
Außerdem ist es möglich, mit dem Azure SDK Forecasting Pipelines direkt in Python zu entwickeln.

Bei der Erprobung wurden alle vier Möglichkeiten untersucht. Neben der Fragestellung der Art und Weise, wie das Forecasting durchgeführt werden soll, stellt sich darüber hinaus die Frage, welche Maschine Learning Algorithmen die besten Ergebnisse für die vorliegende Aufgabe liefern und auch zu den Daten passen.

Bei der Untersuchung der Forecasting-Möglichkeiten mit dem Azure Designer hatten wir festgestellt, dass die begrenzte Anzahl der zur Verfügung stehenden Algorithmen, die Lösungsmöglichkeiten eingrenzt. Das durchgeführte Forecasting mit dem „Boosted Decision Tree Regression“ brachte beispielsweise ein Ergebnis hervor, welches nur einen RMSE von 923,01 hatte. Dies weist darauf hin, dass der Algorithmus nicht ideal für das vorliegende Problem und den dazugehörigen Daten geeignet ist. Denn es sollen Werte für den ganzen Monat vorhergesagt werden und nicht nur ein Wert für einen Folgetag.

Das Forecasting Modell im Azure ML Designer:

Bei den anderen Azure Forecasting Möglichkeiten stehen eine wesentlich größere Auswahl an Algorithmen zur Verfügung. In Azure werden die meisten open-source Maschine Learning Frameworks unterstützt, wodurch sich eine Vielzahl von Möglichkeiten ergibt. Um die passende Lösung zu finden, bietet es sich an, eine Vielzahl von Algorithmen auf einmal zu verwenden und diese dann anhand der Evaluierungskennzahlen zu bewerten.

Dies ist z.B. mit Automated ML möglich und es wurden in unserem Fall insgesamt 56 Modelle aus verschiedenen Frameworks durchlaufen, darunter zum Beispiel Algorithmen aus der Scikit-Learn Software-Bibliothek. Dabei wurde des Beste Ergebnis mit dem „VotingEnsemble“ Algorithmus erzielt, welches einen RMSE von 546 und ein MAPE von 13,765 aufweist.

Das Forecasting für den Folgemonat mit „VotingEnsemble“ sieht wie folgt aus:

Fazit

Mittels Microsoft Azure ML können sowohl vollständig grafisch basierter Oberfläche als auch nur mit Code, Forecastings erstellt werden. Dabei gibt es jedoch viele Möglichkeiten und der optimale Weg hängt sehr von der Fragestellung und den vorhandenen Daten ab.

Es ergibt sich also, dass das beste Ergebnis erzielt werden kann, wenn ein individueller Lösungsweg für die vorliegenden Probleme ermittelt wird.
Einerseits stößt der Azure ML Designer bei manchen Fragestellungen an seine Grenzen. Andererseits ist es mit dem Azure SDK möglich, individuelle Erweiterungen zu entwickeln.

Bei der durchgeführten Erprobung konnte mit Azure ML das beste Ergebnis erzielt werden, wenn zunächst Automated ML verwendet wurde, um den passendsten Algorithmus zu ermitteln und daraufhin mit Jupiter Notebooks oder dem Azure SDK das Machine Learning Model bzw. deren Parameter weiter zu optimieren. In dem erprobten Beispiel konnte mit dem „Scikit-Learn: Voting Ensemble“ Algorithmus ein RMSE von 546 und ein MAPE von 13,765 ein vergleichsweise gutes Ergebnis erzielt werden.

Profilbild von Arjuna Johannes Mittwege
Alle Beiträge von Arjuna Mittwede

Als Experte für Business Intelligence, Data Science und Artificial Intelligence beschäftige ich mich mit komplexen wirtschaftlichen und technischen Fragestellungen und entwickle kundenspezifische Lösungen. Ich arbeite in Entwicklungs und Integrationsprojekten, und bin besonders gefragt, wenn es um Machine-Learning-Modelle, Analytics geht, aber auch bei Cloud-Architecture-Entwürfen oder Datenbankentwicklungen.

Schreibe einen Kommentar