Diese Arbeit hat zur Aufgabe, eine univariate Zeitreihe mittels der Anwendung eines LSTM-Netzwerks vorherzusagen. Als Zeitreihe wurden die Schlusskurse der Aktien des Elektromobil-Herstellers Tesla, Inc. ausgewählt. Hierdurch leitet sich die Nebenaufgabe ab, die für Anleger gegebene Unsicherheit der Aktienmärkte zu reduzieren. Dazu erfolgt eine theoretische Fundierung anhand von Primär- und Sekundärliteratur. Die Zielsetzung der Arbeit wird durch das Entwerfen und Implementieren eines dafür entsprechenden Programmcodes realisiert. Die dafür benötigte Umgebung wird im Rahmen der Open-Source-Anwendung Jupyter Notebook geschaffen.
Die durch COVID-19 verursachte Pandemie und dessen fortlaufende Ausbreitung hat immense wirtschaftliche Schäden nach sich gezogen. Dadurch sind die Kurse relevanter Handelsplätze unnachgiebig gefallen und der Einkaufsmanagerindex im April 2020 auf 49,4 gesunken. Das entspricht einem Tiefstand, wie er zuletzt 2013 gemessen wurde. Einen Monat vorher, im März 2020, fiel der Dax von einem historischen Höchststand von circa 13.800 Punkten auf ein seit sieben Jahren nicht vermerktes Tief von 8.441 Punkten.
Trotz der andauernden Pandemie und daraus resultierender Folgen weicht der Aktienmarkt einige Wochen später weltweit von der wirtschaftlichen Realität ab und bewegt sich zunehmend zum vorherigen Zustand hin. Der bisherige Weg der Besserung war von starken Kursschwankungen und Unvorhersehbarkeit gekennzeichnet. Damit ist das aktuelle Handeln am Aktienmarkt vermehrt durch Sicherheitsbestreben seitens der Anleger geprägt.
Das Bestreben, Vorgänge am Aktienmarkt vorherzusagen, ist jedoch seit jeher präsent. Demnach ist eines der Ziele von Analysen an Finanzmärkten das Vorhersagen von zukünftigen Bewegungen von Aktienpreisen und Finanzindizes. Die dafür entwickelten Methoden reichen von umfassenden mathematischen Modellen bis hin zu Scheinwissenschaften. Im Zuge immer potenterer und frei zugänglicher Rechnerleistung gewinnen statistische Analysen mithilfe großer Datensätze an Beliebtheit. Das Vorhersagen von Aktienkursen steht inzwischen seit mehreren Jahren aufgrund der dadurch erhofften Profitabilität im Fokus.
Inhaltsverzeichnis
1 Einleitung
1.1 Einführung in die Thematik
1.2 Zielsetzung, Aufbau und Methodik
2 Der Aktienmarkt und die damit verbundene Unsicherheit
2.1 Grundlagen des Aktienmarktes
2.2 Unsicherheiten des Aktienmarktes
3 Vorhersagen von Zeitreihen mit LSTM-Netzwerken
3.1 Grundlagen maschinellen Lernens und künstlicher neuronaler Netzwerke
3.2 Das Problem von RNNs und die Notwendigkeit des LSTM-Netzwerks
3.3 Definition und Aufbau von LSTM-Netzwerken
3.4 Anwendung von LSTM für Vorhersagen univariater Zeitserien mit Zeitschritten
4 ArchitekturdesProgrammcodes
4.1 Beschreibung der Python-Programmstruktur
4.1.1 Module, Pakete, Programmbibliotheken und integrierte Klassen
4.1.2 Funktionen und Methoden
4.1.3 Serien und DataFrames
4.2 Beschreibung des Programmcode-Lebenszyklus mittels eines Zustandsdiagramms
5 Implementierung des Programmcodes
5.1 Datenverständnis
5.2 Datenaufbereitung
5.3 Datenmodellierung
5.4 Modellevaluierung
5.5 Vorhersage und Ergebnisvisualisierung
6 Fazit
7 Literaturverzeichnis
8 Anhang
Abbildungsverzeichnis
Abbildung 1: Informations-Kreislauf eines Recurrent-Neural-Networks
Abbildung 2: Der Memory-Block als Subnetzwerk eines LSTMs
Abbildung 3: Zustandsdiagramm des Programmcodes
Abbildung 4: Kopf- und Fußbereich des erstellten DataFrames
Abbildung 5: Darstellung normalisierter Werte mihilfe der display()-Funktion
Abbildung 6: Erstellen des Trainings-Datensatzes mittels einer Schleife
Abbildung 7: Datenmodellierung und Trainieren des Datensatzes
Abbildung 8: Dauer und Ergebnisse der Verlustfunktion der 39. bis zur 42 Iteration
Abbildung 9: Output aus der Wurzel aus der mittleren quadratischen Abweichung
Abbildung 10: Zusammenfassung der Ergebnisse in einem Liniendiagramm
Tabellenverzeichnis
Tabelle 1: Verwendete Module, Pakete, Programmbibliotheken und Klassen, S. 8 Tabelle 2: Verwendete Funktionen und Methoden
1 Einleitung
1.1 Einführung in die Thematik
Die durch COVID-19 verursachte Pandemie und dessen fortlaufende Ausbreitung hat immense wirtschaftliche Schäden nach sich gezogen. Dadurch sind die Kurse relevanter Handelsplätze unnachgiebig gefallen und der Einkaufsmanagerindex im April 2020 auf 49,4 gesunken. Das entspricht einem Tiefstand, wie er zuletzt 2013 gemessen wurde (Wiebe, 2020). Einen Monat vorher, im März 2020, fiel der Dax von einem historischen Höchststand von circa 13800 Punkten auf ein seit sieben Jahren nicht vermerktes Tief von 8441 Punkten. Trotz der andauernden Pandemie und daraus resultierender Folgen weicht der Aktienmarkt einige Wochen später weltweit von der wirtschaftlichen Realität ab und bewegt sich zunehmend zum vorherigen Zustand hin (Korfmacher, 2020).
Der bisherige Weg der Besserung war von starken Kursschwankungen und Unvorhersehbarkeit gekennzeichnet. Damit ist das aktuelle Handeln am Aktienmarkt vermehrt durch Sicherheitsbestreben seitens der Anleger geprägt (Röder, 2020).
Das Bestreben, Vorgänge am Aktienmarkt vorherzusagen, istjedoch seitjeher präsent (Shah, Isah & Zulkemine, 2019, S. 1). Demnach ist eines der Ziele von Analysen an Finanzmärkten das Vorhersagen von zukünftigen Bewegungen von Aktienpreisen und Finanzindizes. Die dafür entwickelten Methoden reichen von umfassenden mathematischen Modellen bis hin zu Scheinwissenschaften.
Im Zuge immer potenterer und frei zugänglicher Rechnerleistung gewinnen statistische Analysen mithilfe großer Datensätze an Beliebtheit (Coronel-Birzio, Olivares, Hemandez-Montoya, Scalas, 2012, S.l). Das Vorhersagen von Aktienkursen steht inzwischen seit mehreren Jahren aufgrund der dadurch erhofften Profitabilität im Fokus. Aktienkurse zu Vorhersagen istjedoch aufwendig, weil die Bewegungen von Aktienkursen als beinahe zufällig eingestuft werden können. Eine Technologie, mit der diese komplexe Aufgabe vermehrt bewältigt wird, ist die der künstlichen neuronalen Netzwerke (Artificial Neural Netzwerks (ANNs)) (Hegazy, Salam & Soliman, 2013, S. 1). In sich daraus ergebenden künstlichen Femmethoden steigt die Genauigkeit der Vorhersagen mit der Fähigkeit der Modelle, Abhängigkeiten von Variablen mittels historischer ZeitserienDaten zu beobachten. Für die Verarbeitung von Zeitserien-Daten für Vorhersagen haben sich sogenannte „FSTM-Netzwerke“, eine Unterart neuronaler Netzwerke, in der Vergangenheit als besonders effektiv erwiesen (Khodabakhsh, Ari, Bakir & Alagoz, 2020, S. 1).
1.2 Zielsetzung, Aufbau und Methodik
Diese Arbeit hat zur Aufgabe, eine univariate Zeitreihe mittels der Anwendung eines LSTM- Netzwerks vorherzusagen. Als Zeitreihe wurden die Schlusskurse der Aktie des ElektromobilHerstellers Tesla, Inc. ausgewählt, womit sich die Nebenaufgabe ableitet, die für Anleger gegebene Unsicherheit der Aktienmärkte zu reduzieren. Dazu erfolgt eine theoretische Fundierung der Kapitel 2 bis 4 anhand von Primär- und Sekundärliteratur. Die Zielsetzung dieser Arbeit wird durch das Entwerfen und Implementieren eines dafür entsprechenden Programmcodes realisiert. Die dafür benötigte Umgebung wird im Rahmen der Open-Source-Anwendung „Jupyter Notebook“ geschaffen.
Zu Beginn sollen die Lesenden die Grundlagen des Aktienmarktes (Kapitel 2.1) vermittelt bekommen und eine Erläuterung der sich daraus ergebenden Unsicherheiten für Anleger (Kapitel 2.2) erhalten. Weiteres theoretisches Wissen soll im Kapitel 3 zu Vorhersagen von Zeitreihen mittel LSTM-Netzwerken vermittelt werden. Dabei findet eine Einordnung des LSTM-Begriffs statt, indem anfänglich die Grundlagen maschinellen Lernens und künstlicher neuronaler Netzwerke (Kapitel 3.1) behandelt und der Bedarf von LSTM-Netzwerken (Kapitel 3.2) herausgearbeitet wird. Daran anschließend können der LSTM-Begriff definiert und der Aufbau eines LSTM- Netzwerks erklärt werden (Kapitel 3.3). Abschließend beschreibt das für den Programmcode dieser Arbeit grundlegende Kapitel 3.4 den Prozess der Anwendung von LSTM-Vorhersagen von univariaten Zeitreihen mit Zeitschritten. Vorbereitend auf das Kapitel 5 soll im Kapitel 4 die Architektur des Programmcodes durch die Beschreibung der Python-Programmstruktur (Kapitel 4.1) erläutert werden. Dem Code weitere Struktur gewährend, wird weiterhin der ProgrammcodeLebenszyklus mittels eines Zustandsdiagramms (Kapitel 4.2) dargelegt. Abschließend folgt die Implementierung des Programmcodes (Kapitel 5), in der der Lesende - durch Unterkapitel strukturiert - durch die klar abgrenzbaren Abschnitte (Kapitel 5.1- 5.5) begleitet wird.
2 Der Aktienmarkt und die damit verbundene Unsicherheit
2.1 Grundlagen des Aktienmarktes
Bei einer Aktie handelt es sich um einen Anteil an einer Kapitalgesellschaft, der damit unter anderem Besitzrechte an dieser verbrieft. Die Aktie als Finanzierungsinstrument ermöglicht es Kapitalgesellschaften, Eigenkapital von Aktionären zu erhalten, die durch den Kauf der Aktie zu Teilhabern des jeweiligen Unternehmens werden. Zudem kann eine Aktie als ein Produkt verstanden werden, das in Aktienmärkten, entsprechend der Kräfte von Bedarf und Angebot der freien Marktwirtschaft gekauft und verkauft werden kann. Daraus kann abgeleitet werden, dass Aktien zu einem bestimmten Preis gehandelt werden. Ferner ist ein Wechsel von Besitzern von Aktien möglich (Chaudhuri, 2020, o. S.).
Die durch eine Aktie verbrieften Eigentumsrechte sindjedoch kein Indikator für langfristige Besitzverhältnisse. So geschieht ein Teil des Aktienhandels auf Grundlage von Erträgen durch Wertsteigerungen auf täglicher Basis (Chaudhuri, 2020, o. S.). Akteure des als „Day-Trading“ (Tageshandel) bekannten kurzzeitigen Handels an der Börse nutzten Schwankungen von Börsenkursen (Wallstreet Online, o. D.). Ausschlaggebend ist, dass eine Position innerhalb desselben Handelstages geschlossen wird (Kuepper, 2020). Daraus lässt sich eine hohe Geschwindigkeit und Dynamik der Aktienmarkt-Bewegungen ableiten.
2.2 Unsicherheiten des Aktienmarktes
Das Analysieren und Ableiten von Preisentwicklungen von Aktien ist aufgrund jener Dynamik von Aktienmärkten ein herausforderndes Unterfangen. Weiterhin werden Bewegungen innerhalb Aktienmärkte als nicht-linear, von Standorten unabhängig, nicht-parametrisch, ungenau und unberechenbar beschrieben. Dieses Verhalten ist auf miteinander zusammenhängende Aspekte, wie ökonomische, politische, psychologische und untemehmensbezogene Faktoren zurückzuführen (Shah, Isah & Zulkemine, 2019, S. 1).
Aus dieser Unsicherheit geht das Bedürfnis hervor, die zukünftigen Werte und damit die Preisentwicklung von Aktien zu bestimmten. So geht mit einer erfolgreichen Vorhersage von Aktienpreisen eine Gewinnmaximierung der Investoren einher (Hegazy, Salam & Soliman, 2013, S. 1). Das Machen von Vorhersagen von Aktienmarkt-Bewegungen ist für Forscher und Analysten von großer Bedeutung, seit Anbeginn des Aktienmarktes. Jedoch gelten sie Vorhersagen als nicht präzise, weil etwaige Bewegungen mit einem „Random Walk“ (zufällige Schrittfolge) verglichen werden. Dadurch wäre eine Vorhersage aufgrund dieser Zufälligkeit nicht möglich. Dennoch zeigen Vorhersagen mittels „Machine Learning“ Algorithmen Erfolge (Shah, Isah & Zulkemine, 2019, S. 1).
3 Vorhersagen von Zeitreihen mit LSTM-Netzwerken
3.1 Grundlagen maschinellen Lernens und künstlicher neuronaler Netzwerke
„Maschinelles Lernen“ (Machine Learning) behandelt das Entwickeln von Algorithmen, die Selbstoptimierung durch Ausübung erreichen. Die Aufgabe des Lem-Algorithmus ist es, eine Funktion auf der Grundlage des zum Training verwendeten Datensatzes zu optimieren. Die Per- formanz des Models, welches die Grundlage für die zu optimierende Funktion bildet, wird anhand der Anwendung des Lem-Algorithmus von dem Algorithmus unbekannter Daten gemessen (Staudemeyer, 2019, S. 1). Ein grundlegendes Verständnis für maschinelles Lernen schafft beispielsweise „Understanding Machine Learning: From Theory for Algorithms“ (2014) von Shai Salev Shwartz und Shai Ben-David.
Künstliche neuronale Netzwerke (Artificial Neural Networks) sind an die Entscheidungsprozesse von biologischen Zentralnervensystemen angelehnte Rechner-Netzwerke. Sogenannte „Neuronen“ entsprechen dabei den Nervenzellen von Zentralnervensystemen eines Menschen (Graupe, 2019, S. 1). Vertiefend sollte „Principles of Artificial Neural Networks: Basics Designs to Deep Learning” (2019) von Daniel Graupe gelesen werden.
Künstliche neuronale Netzwerke werden zudem unterteilt in Feedfoward-Neural-Networks (FFNNs) und Reurrent-Neural-Networks (RNNs) (Hua et al., 2018, S. 2).
Üblicherweise bestehen FFNNs aus „Layers“ (Schichten), wie dem Input-Layer, Output-Layer und Hidden-Layer. Jede Schicht besteht aus Neuronen und einer sogenannten „Activation-Function“. FFNNs sind dadurch charakterisiert, dass keine Verbindung zwischen Neuronen derselben Schicht besteht. Außerdem können nicht alle Neuronen durch Schichten hinweg miteinander verbunden sein. Daraus geht hervor, dass der Informationsfluss durch das Netzwerk - von der Input- bis zur Output-Schicht - einseitig ist. FFNNs finden unter anderem Anwendung in Gebieten, wie der Klassifizierung von Daten, der Objekt-Erkennung und der Bildverarbeitung. Aufgrund ihrer Struktur ist die Verarbeitung von historischen Abhängigkeiten)edoch nicht möglich.
RNNs lösen dieses Problem durch einen Netzwerk-internen Kreislauf, der es Informationen erlaubt zu bestehen (Hua et al., 2018, S. 2).
Abbildung 1: Informations-Kreislauf eines Recurrent-Neural-Networks
Abbildung in dieser Leseprobe nicht enthalten
(Quelle: Olah,2015)
Diagramm 1 zeigt symbolisch ein einfaches RNN auf, indem ,,A“ das Netzwerk, xt einen Input und ht einen Wert darstellt. Der Kreislauf erlaubt es, Informationen beizubehalten (Olah, 2015). RNNs besitzen zwar eine Struktur, die der von FFNNs ähnelt. Der Unterschied ist jedoch, dass den Neuronen innerhalb der Hidden-Layers eine Verbindung ermöglicht wird (Hua et al., 2018, S. 2). RNNs werden als multiple FFNNs verstanden, die Informationen miteinander austauschen. In dieser Kategorie der künstlichen neuralen Netzwerke werden Teile des Inputs benutzt, um genaue Vorhersagen zu machen (Kostadinov, 2015). RNNs ermöglichen das Einspeichem von historischen Informationen als Input im internen Zustand, wodurch die Inputdaten zum endgültigen Output zugeordnet werden können (Hua et al., 2018, S. 3). Für eine detailliertere Beschreibung dieses Prozesses kann „Deep Learning with Long Short-Term Memory for Time Series Prediction“ (2018) von Yuxiu Hua et al. verwendet werden.
3.2 Das Problem von RNNs und die Notwendigkeit des LSTM-Netzwerks
Dioden sind elektrische Bauelemente, die einen Stromfluss in eine Richtung ermöglichen und den Stromfluss in die entgegengesetzte Richtung verhindern. In Schalterbildem verweist die Diode in Form von Pfeilen auf die Richtung des Stromflusses (AllAboutCircuits, Introduction to Diodes And Rectifiers).
Durch die im vorherigen Kapitel beschriebene Struktur ist es RNNs möglich, Probleme, wie TextKlassifizierungen, Text-Generationen und Zeitserien-Vorhersagen zu lösen (Thomas, 2019). Was das Verarbeiten von längeren Zeitserien erschwert ist das Problem der sogenannten „Vanishing Gradients“ (Verschwindende Gradienten). Gradienten tragen die in Parametern von RRNs verwendete und im Prozess aktualisierte Informationen. In RNNs werden die Gradienten mit der Zunahme an Zeitschritten immer geringer, wodurch letztlich die Aktualisierungen der Parameter irrelevant werden und kein Lem-Effekt mehr stattfindet (Abel, 2018). Um dieses Problem im Detail nachvollziehen zu können, sollte „Understanding LSTM - a tutorial into Long Short-Term Memory Recurrent Neural Networks“ (2019) von Ralf Staudemeyer gelesen werden.
Christopher Olah, Mitarbeiter von OpenAI, beschreibt das Problem von Langzeit-Abhängigkeiten und RNNs in seinem Blog-Eintrag „Understanding LSTM Networks“ folgendermaßen:
“But there are also cases where we need more context. Consider trying to predict the last word in the text “I grew up in France.. .1 speak fluent French ” Recent information suggests that the next word is probably the name of a language, but if we want to narrow down which language, we need the context of France, from further back. It’s entirely possible for the gap between the relevant information and the point where it is needed to become very large. Unfortunately, as that gap grows, RNNs become unable to leam to connect the information”
3.3 Definition und Aufbau von LSTM-Netzwerken
Neuronale Netzwerke der Kategorie „Long Short-Term Memory“ sind eine auf dem Erlernen von Langzeit-Abhängigkeiten spezialisierte Unterkategorie der RNNs. Bei dem Merkmal, das LSTMs auszeichnet und das zuvor beschriebene Hindernis von RNNs löst, handelt es sich um „Memory Blocks“ (Gedächtnis-Blöcke) (Hua et al., 2018, S. 3).
Abbildung 2: Der Memory-Bloc als Subnetzwerk eines LSTMs
Abbildung in dieser Leseprobe nicht enthalten
(Quelle: Hue et al., 2018, S. 3)
Entsprechend der Abbildung 2 ist der Memory Block ein rekursiv-verbundenes Subnetzwerk des LSTMs mit funktionalen Modulen, wie den Memory Cells (Geschächtniszellen) und den Gates (Toren). Memory Cells sind in der Lage die kurzfristigen Zustände des neuronalen Netzwerks abzuspeichem. Gates sind verantwortlich für das Steuern des Informationsflusses innerhalb des Netzwerks. Wie in Abbildung 2 dargestellt lassen sich Gates in Lorget Gates, Input Gates und Output Gates kategorisieren. Während Input-Gates den Lluss neuer in die Memory Cell fließender Informationen kontrollieren, bestimmen Lorget Cells im Rahmen der rekursiven Verbindung welche Informationen in der Zelle verbleiben. Schließlich steuern Output Cells den Informationsverbrauch für die Berechnung der Aktivierung des Memory Block und fließen zudem in den Rest des Netzwerks (Quelle: Hua et al., 2018, S. 3).
3.4 Anwendung von LSTM für Vorhersagen univariater Zeitserien mit Zeitschritten
Neben anderen Anwendungsfällen lassen sich LSTMs für Vorhersagen von Zeitserien benutzen. Bei der aus dem Programmcode dieser Arbeit stammenden Vorhersage handelt es sich um die Verarbeitung einer univariaten Zeitreihe mit mehreren Zeitschritten (Brownlee, 2020).
Der programmtechnische Ablauf dieser Anwendung beginnt mit dem Importieren von relevanten Modulen, Punktionen und Klassen. Dabei ist eine auf „SciPy“ vorbereitete Umgebung mit ,,Ke- ras“ als integrierter Deep Learning Programmbibliothek grundlegend (Mwiti, 2018). Bei SciPy handelt es sich um eine auf Python basierte Programmbibliothek, bestehend aus Open-Source- Software für wissenschaftliches und technisches Rechnen. Dazu gehören Pakete, wie NumPy, Matplotlib und pandas (SciPy, o.D.).
LSTMs reagieren zudem empfindlich auf die Werteskala der Input-Daten. Ein Umskalieren der Daten auf eine Werteskala von 0 bis 1 im Zuge des Normalisierens ist dementsprechend zu empfehlen (Brownlee, 2019).
Darauffolgenden wird der geordnete Datensatz in einen Trainings- und einen Test-Datensatz aufgeteilt (Brownlee, 2019). Der Trainings-Datensatz dient dazu das Modell des LSTMs zu trainieren. Dahingegen wird der Test-Datensatz dazu verwendet, das erstellte Modell, im Sinne einer unbefangenen Evaluation, zu validieren (Lhessani, 2019).
Die beiden Datensätze in Form von zwei-dimensionalen Reihen gilt es anschließend in drei-dimensionale Reihen zu transformieren (Brownlee, 2019). Die Dreidimensionalität ist eine Voraussetzung für den Input von LSTM-Netzwerken. Die erste Dimension repräsentiert die Anzahl an Trainings-Beispielen, die für eine Wiederholung verwendet werden. Bei der zweiten Dimension handelt es sich um die Zeitschritte und bei der dritten Dimension die Anzahl von Einheiten in einerlnput-Sequenz (Verma, 2019).
Das LSTM-Netzwerk kann nun im Hinblick auf das Problem entworfen und angepasst werden. Dieses besteht für den Anwendungsfall dieser Arbeit aus einem sichtbaren Layer mit einem Input, einem Hidden-Layer mit vier LSTM-Memory-Blocks und einem Output-Layer, die eine Vorhersage mittels eines einzigen Wertes macht (Brownlee, 2019).
Im Rahmen der Evaluation des Modells können die Verlustfünktion des Modells und die Wurzel der mittleren quadratischen Abweichung für das Bewerten der Qualität des Models benutzt werden. Hinsichtlich der Verlustfünktion besteht ein Zusammenhang zwischen der Anzahl an ausgewählten Iterationen mittels des „epoch“ Ausdrucks in der ,,fit()“ Methode. In Bezug auf das Ziel, die Verlustfunktion zu minimieren, erreicht das erstellte Modell mit zunehmenden Iterationen ein Optimum (Mwiti, 2018). Definiert als die Summe der gemachten Fehler fürjede Probe in einem Trainingsdatensatz entspricht ein Verlust von 0 einer perfekten Vorhersage (AI Wiki, 2020). Zuzüglich gelingt eine weitere Qualitätsprüfüng mit der Wurzel aus der mittleren quadratischen Abweichung. Diese ist definiert als die Wurzel, aus der quadratischen Differenz der tatsächlichen und der vorhergesagten Werte, die durch die Anzahl der Stichproben dividiert wird (Satyan, 2019).
Nachdem die Leistungsfähigkeit des Modells mittels der Wurzel aus der mittleren quadratischen Abweichung und der Verlustfunktion errechnet wurde, können schließlich Vorhersagen mit Zuhilfenahme des Modells gemacht und visualisiert werden (Brownlee, 2019).
4 Architektur des Programmcodes
4.1 Beschreibung der Python-Programmstruktur
4.1.1 Module, Pakete, Programmbibliotheken und integrierte Klassen
Der Begriff „Modul“ (Module) findet seinen Ursprung in der „modularen Programmierung“, in der Systeme aus mehreren kleineren Modulen bestehen. Einzelne Module können zu größeren Einheiten kombiniert werden, um größere Anwendungen zu bilden (Sturtz, Python Modules and Packages - An Introduction). Im Kontext von Programmiersprachen handelt es sich bei Modulen um eine Sammlung von Methoden und Funktionen, die in einer Vielzahl an Programmen ausgeführt werden können (Summerfield, 2009, S. 195).
Um ein höheres Maß an Struktur in aufwendigeren Anwendungen zu gewährleisten, werden Module als Pakete (Packages) in Form einer Sammlung in einem Verzeichnis eingeordnet (Summer- field, 2009, S. 199). Während Module Interferenzen zwischen globalen Variablen-Namen im Programmcode verhindern, realisieren Pakete selbiges für Module (Sturtz, Python Modules and Packages - An Introduction).
Eine Programmbibliothek befindet sich perspektivisch insofern auf der nächsthöheren Ebene der Programmstruktur, als dass diese Module und Pakete vereinheitlicht, um sie in einem Programmcode zu benutzen. Per Definition ist die Programmbibliothek eine Sammlung aus sogenannten „Routinen“, wie Module es sind, mit dazugehörigen Daten, Dokumentationen und Vorlagen. Wie bei Modulen und Paketen liegt der Vorteil bei Programmbibliotheken in der Wiederverwendbarkeit des Verhaltens von Code (Devero, 2015).
Die Klasse als Teil der Python-Struktur ermöglicht das Bündeln von Daten und Funktionalitäten. Grundlegend für objektorientierte Programmiersprachen, wie Python (Python, Classes), ermöglichen Klassen Objekten als eine Vorlage, Variablen und Funktionen zusammenzufassen (Leam- python, Classes and Objects).
In Tabelle 1 sind die für den Programmcode dieser Arbeit relevanten Module, Pakete, Programmbibliotheken sowie interne Klassen und deren Funktionalitäten dargestellt.
[...]
- Citar trabajo
- David Lewenko (Autor), 2020, Vorhersage von Aktienkursen mittels eines LSTM-Netzwerks. Entwurf und Implementierung eines Python-Programmcodes, Múnich, GRIN Verlag, https://www.grin.com/document/980345
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X.