In dieser Arbeit sollte mittels Deep Learning ein Modell erstellt werden, mit dem sich die Auslastung eines Servers in einem Rechenzentrum vorhersagen lässt. Dafür sollte evaluiert werden, welche Modell-Architektur für diese Zeitreihenvorhersage am besten geeignet sind. Dafür wurde zunächst eine theoretische Untersuchung durchgeführt und anschließend ein Vergleich der geeigneten Modell-Architekturen angestellt. Es stellte sich heraus, dass ein Convolutional Neural Network (CNN) mit einer Long Short Term Memory (LSTM) Schicht die besten Prognosen erzeugt.
Es wurde untersucht, wie sich die Hauptkomponentenanalyse zur Dimensionsreduktion auf die Modelle auswirkt. Dies zeigte, dass die Effekte stark von der Architektur abhängen. Die System-Architektur einer Webanwendung wurde so erweitert, dass es möglich ist, neben der historischen Serverauslastung auch Prognosen anzuzeigen. Die Visualisierungen der aufgezeichneten Daten wurden um die Vorhersagen erweitert.
Die Arbeit stellt schließlich eine Möglichkeit dar, wie der Lebenszyklus des Prognosemodells in einem produktiven System mit stetiger Auslastungsmessung integriert werden kann.
Inhaltsverzeichnis
- 1 Einleitung
- 1.1 Ausgangssituation
- 1.2 Zielsetzung
- 1.3 Gliederung der Arbeit
- 2 Einführung in die Zeitreihenanalyse in der Statistik
- 2.1 Definition einer Zeitreihe
- 2.1.1 Arithmetisches Mittel
- 2.1.2 Erwartungswert
- 2.1.3 Varianz
- 2.1.4 Kovarianz
- 2.2 Stationäre Prozesse
- 2.3 Das Komponentenmodell
- 2.3.1 Trendbereinigung
- 2.3.2 Saisonbereinigung
- 2.4 AR-, MA- und ARMA-Modelle
- 2.4.1 AR(p)-Modelle
- 2.4.2 MA(q)-Modelle
- 2.5 ARMA(p,q)-Modelle
- 2.6 ARIMA(p,d,q)-Modelle
- 2.6.1 Vorgehensweise zur Zeitreihenvorhersage mit ARIMA-Modellen
- 3 Python für Machine-Learning und Data Science
- 3.1 Relevante Python-Bibliotheken
- 3.1.1 Numpy
- 3.1.2 Pandas
- 3.1.3 statsmodels
- 3.1.4 Matplotlib
- 3.1.5 Tensorflow
- 3.1.6 Keras
- 3.1.7 Scikit-learn
- 4 Der Data Science Prozess
- 4.1 Fragestellung
- 4.2 Datenbeschaffung (1)
- 4.3 Datenexploration (1)
- 4.4 Datenbeschaffung (2)
- 4.5 Datenexploration (2)
- 4.5.1 Rücksprache mit Datenbankadministrator
- 4.6 Datenbeschaffung (3)
- 4.7 Datenexploration (3)
- 4.7.1 Vereinheitlichung der Timestamps
- 4.7.2 Merkmale als Spalten
- 4.7.3 Keine fehlenden Merkmalswerte
- 4.8 Datenmodellierung
- 4.9 Visualisierung
- 5 Grundlagen für die Prognosenerstellung mit Machine-Learning
- 5.1 Was ist Machine-Learning?
- 5.2 Statistische Methoden oder Machine-Learning?
- 5.3 Machine-Learning-Klassen
- 5.3.1 Supervised Learning
- 5.3.2 Unsupervised Learning
- 5.3.3 Reinforcement Learning
- 5.3.4 Entscheidung für eine Klasse
- 5.4 Künstliche Neuronale Netze
- 5.4.1 Das Perzeptron nach Rosenblatt
- 5.4.2 Aufbau von KNNs
- 5.4.3 Lernen mittels Gradientenabstiegsverfahren
- 5.4.4 Backpropagation
- 5.5 Über- und Unteranpassung eines Künstlichen Neuronalen Netzes
- 5.6 Regularisierung
- 5.6.1 Dropout-Regularisierung
- 5.6.2 Regularisierung durch Early Stopping
- 5.7 Standardisierung
- 5.8 Univariate und multivariate Vorhersagen
- 6 Zeitreihenprognose mit Neuronalen Netzen
- 6.1 Evaluation verschiedener Architekturen Neuronaler Netze
- 6.1.1 Multilayer Perceptron (MLP)
- 6.1.2 Convolutional Neural Network (CNN)
- 6.1.3 Long Short Term Memory (LSTM)
- 6.1.4 Recurrent Neural Network(RNN)
- 6.1.5 Gated Recurrent Unit (GRU)
- 6.2 Datenvorbereitung für multivariate KNNs
- 6.2.1 Featuregenerierung aus den Zeitstempeln
- 6.2.2 Hauptkomponentenanalyse (PCA)
- 6.2.3 Ablauf der Datenvorbereitung
- 6.3 Implementierung der KNNs
- 6.3.1 Grundlegende Designentscheidungen
- 6.3.2 Implementierung des MLP
- 6.3.3 Implementierung des CNN
- 6.3.4 Implementierung des LSTM- und GRU-Netzes
- 6.4 Modelloptimierung
- 6.4.1 Kreuzvalidierung
- 6.4.2 Rastersuche
- 6.4.3 Ergebnisse der Hyperparameteroptimierung
- 6.5 Trainings-, Validierungs- und Testdaten
- 6.6 Modellbewertung
- 6.6.1 Möglichkeiten zur Fehlerbestimmung
- 6.6.2 Fehlerauswertung der erstellten Modelle
- 6.6.3 Interpretation der Fehlerauswertung
- 6.6.4 Entscheidung für ein Modell
- 6.6.5 Modell für zweite Serverinstanz
- 7 Möglichkeiten zur Integration der Prognosen in die Webanwendung
- 7.1 Durchführen des Machine-Learning im Browser
- 7.1.1 Tensorflow.js
- 7.1.2 WebAssembly
- 7.1.3 Iodide
- 7.1.4 Pyodide
- 7.2 Bereitstellung der Prognosewerte
- 7.3 Entscheidung für einen Ansatz
- 8 Umsetzung des gewählten Ansatzes
- 8.1 Die Webanwendung DC-Cubes
- 8.2 Verwendete Technologien
- 8.2.1 React
- 8.2.2 D3.js
- 8.2.3 three.js
- 8.2.4 Solr
- 8.2.5 Node.js
- 8.3 Backend-Architektur
- 8.4 Konzept zur Bereitstellung der Prognosewerte
- 8.5 Visualisierung der Prognosen in der Webanwendung
- 8.5.1 Ausgangssituation
- 8.5.2 Erweiterung um Prognose
- 8.6 Technische Umsetzung
- 8.6.1 Speichern der historischen Daten
- 8.6.2 Erzeugen und Speichern der Prognosen
- 8.6.3 Laden der Prognose in die Webanwendung
- 8.6.4 Neue Prognosen erstellen
- 8.6.5 Anzeigen der Prognose aktivieren
- 8.6.6 Anzeigen der Prognose im 2d-Chart
- 8.6.7 Anzeigen der Prognose im 3d-Chart
- 8.6.8 Merge-Core
- 9 Zusammenfassung und Ausblick
- 9.1 Zusammenfassung dieser Arbeit
- 9.2 Lebenszyklus der Prognosemodelle
- 9.3 Ausblick
Zielsetzung und Themenschwerpunkte
Diese Bachelorarbeit befasst sich mit der Integration von Python-basierten Vorhersagemodellen in ein Monitoring-Webdashboard. Das Ziel ist es, die bestehenden Monitoring-Funktionen um Prognosefunktionen zu erweitern, um zukünftige Entwicklungen von Zeitreihen-Daten zu antizipieren und so eine verbesserte Entscheidungsfindung zu ermöglichen.
- Zeitreihenanalyse und Prognosemodelle
- Integration von Python-Bibliotheken für Data Science
- Entwicklung und Training von Neuronalen Netzen
- Visualisierung von Prognosen im Webdashboard
- Anbindung der Prognosemodelle an das Backend der Webanwendung
Zusammenfassung der Kapitel
- Kapitel 1 führt in die Thematik der Bachelorarbeit ein und erläutert die Ausgangssituation, die Zielsetzung und die Gliederung der Arbeit.
- Kapitel 2 bietet eine Einführung in die Zeitreihenanalyse in der Statistik. Es werden wichtige Konzepte wie die Definition einer Zeitreihe, stationäre Prozesse und das Komponentenmodell vorgestellt. Außerdem werden AR-, MA-, ARMA- und ARIMA-Modelle erläutert.
- Kapitel 3 behandelt die Verwendung von Python für Machine-Learning und Data Science. Es werden relevante Python-Bibliotheken wie Numpy, Pandas, statsmodels, Matplotlib, Tensorflow, Keras und Scikit-learn vorgestellt.
- Kapitel 4 beschreibt den Data Science Prozess, der zur Entwicklung von Prognosemodellen eingesetzt wird. Es werden die Schritte der Fragestellung, Datenbeschaffung, Datenexploration, Datenmodellierung und Visualisierung erläutert.
- Kapitel 5 befasst sich mit den Grundlagen für die Prognosenerstellung mit Machine-Learning. Es werden wichtige Konzepte wie Supervised Learning, Unsupervised Learning, Reinforcement Learning und Künstliche Neuronale Netze erläutert. Außerdem werden die Themen der Über- und Unteranpassung, Regularisierung und Standardisierung behandelt.
- Kapitel 6 beschäftigt sich mit der Zeitreihenprognose mit Neuronalen Netzen. Es werden verschiedene Architekturen von Neuronalen Netzen, wie MLP, CNN, LSTM, RNN und GRU, vorgestellt und deren Implementierung erläutert. Außerdem werden die Themen der Datenvorbereitung, Modelloptimierung, Modellbewertung und Modellentscheidung behandelt.
- Kapitel 7 untersucht verschiedene Möglichkeiten zur Integration der Prognosen in die Webanwendung. Es werden Ansätze wie das Durchführen des Machine-Learning im Browser, die Bereitstellung der Prognosewerte und die Entscheidung für einen geeigneten Ansatz diskutiert.
- Kapitel 8 beschreibt die Umsetzung des gewählten Ansatzes. Es werden die Webanwendung DC-Cubes, die verwendeten Technologien, die Backend-Architektur und das Konzept zur Bereitstellung der Prognosewerte vorgestellt. Außerdem wird die technische Umsetzung der Visualisierung der Prognosen in der Webanwendung erläutert.
Schlüsselwörter
Zeitreihenanalyse, Prognosemodelle, Machine-Learning, Neuronale Netze, Python, Data Science, Monitoring-Webdashboard, Visualisierung, Integration, Webanwendung.
- Citar trabajo
- Sebastian Steindl (Autor), 2020, Integration von python-basierten Vorhersagemodellen in ein Monitoring-Webdashboard, Múnich, GRIN Verlag, https://www.grin.com/document/899477