HBase
 sql >> Datenbank >  >> NoSQL >> HBase

Verwenden von COD und CML zum Erstellen von Anwendungen, die Bestandsdaten vorhersagen

Nein nicht wirklich. Sie werden wahrscheinlich nicht reich, wenn Sie nicht wirklich hart arbeiten … So schön es auch wäre, Sie können einen Aktienkurs nicht wirklich nur auf der Grundlage von ML vorhersagen, aber jetzt habe ich Ihre Aufmerksamkeit!

In Fortsetzung meines vorherigen Blogbeitrags darüber, wie großartig und einfach es ist, webbasierte Anwendungen zu entwickeln, die von Cloudera Operational Database (COD) unterstützt werden, habe ich ein kleines Projekt gestartet, um COD mit einer anderen CDP-Cloud-Erfahrung, Cloudera Machine Learning (CML), zu integrieren.

In dieser Demo werde ich versuchen, das Verhalten des Eröffnungskurses von Aktien auf der Grundlage ihrer historischen Daten vorherzusagen, dh ob der Eröffnungskurs einer Aktie steigen oder fallen wird. Ich bin kein Datenwissenschaftler, aber es gibt online viele Beispiele dafür (ich habe einige Codebeispiele genommen, sie repariert und für die Arbeit mit COD angepasst). Zu diesem Zweck werde ich den LSTM-Algorithmus (Long Short-Term Memory) verwenden. RNN im Allgemeinen (rekurrente neuronale Netze) und LSTM im Besonderen funktionieren sehr gut mit Zeitreihendaten

Zur Klarstellung:Wir geben nicht vor, Börsenexperten zu sein, und nichts in diesem Blogbeitrag sollte in irgendeiner Weise als Finanzberatung verstanden werden. Dies ist nur ein Beispiel dafür, wie eine Lösung mit der Software von Cloudera entwickelt wird.

Hauptkomponenten, die in dieser Demo verwendet werden:

  • Cloudera Operational Database (COD), wie in meinem vorherigen Beitrag erwähnt, ist eine verwaltete dbPaaS-Lösung, die als Erfahrung in Cloudera Data Platform (CDP) verfügbar ist
  • CML wurde für Datenwissenschaftler und ML-Ingenieure entwickelt und ermöglicht ihnen, ML-Projekte vom Code bis zur Produktion zu erstellen und zu verwalten. Hauptmerkmale von CML: 
    • Entwicklungsumgebung für Datenwissenschaftler, isoliert, containerisiert und flexibel
    • Production ML Toolkit  – Bereitstellen, Bereitstellen, Überwachen und Verwalten von ML-Modellen
    • App Serving – Erstellen und Bereitstellen benutzerdefinierter Anwendungen für ML-Anwendungsfälle
    • Vorgefertigte Anwendungen für Einblicke in Geschäftsanwender
      • Einfache Erstellung von Dashboards und Apps per Drag-and-Drop mit Cloudera Data Visualization
      • Vorlagenanwendungen als Starterkits für Ihre Anwendungsfälle
  • Aktiendaten – zum Abrufen der Aktiendaten habe ich den Alpha-Vantage-Service (kostenlose Version) verwendet. Im Grunde ist es ein Service, der es Ihnen ermöglicht, eine tägliche Zusammenfassung der Aktienstatistiken (offen, geschlossen, niedriges, hohes Volumen) zu erhalten

Anwendung erstellen

Als erstes müssen wir eine Datenbank in COD erstellen.

1. Melden Sie sich bei der Cloudera Data Platform Public Cloud-Steuerungsebene an

2. Wählen Sie Operational Database und klicken Sie dann auf „Create Database“

3. Wählen Sie Ihre Umgebung und benennen Sie Ihre Datenbank

4. Sobald die Datenbank betriebsbereit ist, wechseln Sie zur Registerkarte JDBC

5. Legen Sie Ihr CDP-Workload-Passwort fest

6. Wechseln wir nun zu CML – Gehen Sie zurück zur Steuerungsebene und klicken Sie auf „Maschinelles Lernen“ und dann auf „Arbeitsbereich bereitstellen“. Geben Sie Ihrem Arbeitsbereich einen Namen und wählen Sie die Umgebung aus, die Sie verwenden möchten

7. Sobald der Arbeitsbereich bereitgestellt ist, erstellen Sie ein neues Projekt, geben Sie ihm einen Namen und verwenden Sie git für den Quellcode. Den gesamten Quellcode finden Sie hier.

8. Sobald das Projekt erstellt ist, sehen Sie alle Dateien im Projektverzeichnis:

9. Wenig zusätzliche Logistik – wir müssen Umgebungsvariablen für das Projekt erstellen, die den Zugriff auf unsere Datenbank und den Alpha-Vantage-API-Schlüssel speichern. Gehen Sie dazu auf den Reiter „Projekteinstellungen ->Erweitert“

10. Beginnen wir nun mit dem Ausführen des Projekts – klicken Sie auf „Neue Sitzung“, geben Sie Ihrer Sitzung einen Namen, wählen Sie „Python 3“ und das Ressourcenprofil

11. Installieren Sie entweder auf dem Terminal oder der CLI unten alle erforderlichen Bibliotheken, indem Sie „pip3 install -r requirements.txt“

ausführen

12. Der nächste Schritt besteht darin, unsere Tabelle zu erstellen, in der die Daten in unserer Datenbank gespeichert werden. Führen Sie zu diesem Zweck das Setup-Skript aus:

13. Beginnen wir jetzt mit dem Testen unseres Modells! Gehen Sie zu runner.py und führen Sie es aus. Grundsätzlich macht dieses Skript Folgendes:

a) Ruft die täglichen Aktiendaten von Alpha Vantage ab

b) Grundlegende Datentransformation

c) Speichern Sie die Daten in der Cloudera Operational Database 

d) Führen Sie das Modell aus und erstellen Sie die Modelldatei (tech_ind_model.py)

e) Vorhersage für die letzten 120 Tage ausführen

f) Berechnen Sie die prognostizierten Einnahmen, wenn wir Aktien zu den exakten Kursen kaufen und verkaufen 

14. Während das Programm läuft, werden Sie sehen, dass es Daten für jede Aktie sammelt, sie auf COD hochlädt, die Vorhersage durchführt und ein Diagramm zeichnet, das den vorhergesagten Preis im Vergleich zum aktuellen Preis anzeigt. Obwohl das Diagramm zeigt, dass der Trend in den meisten Fällen sehr ähnlich ist, kann selbst ein geringfügiger Unterschied den Gesamtumsatz aus diesen Empfehlungen beeinflussen. Die Ausgabe des Laufs enthält die unten aufgeführten Informationen für jede Aktie:

a) Empfehlung:behalten/kaufen/verkaufen 

b) zuletzt prognostiziert:letzter prognostizierter Preis 

c) Preis:letzter Preis

d) vorhergesagt:Vorhersage für den nächsten Eröffnungspreis

e) Signal:hoch/niedrig – ist die Empfehlung stark/nicht

15. Als ich das Programm das letzte Mal ausgeführt habe, habe ich aufgrund der Empfehlungen bei den meisten Aktien Geld verloren, aber gleichzeitig gab es einige, die einen Gewinn von bis zu 20 % prognostizierten!!!

Nun sind algorithmischer Handel im Allgemeinen und die Vorhersage von Aktienkursen Themen, die es schon seit vielen Jahren gibt. Um solche Anwendungsfälle für maschinelles Lernen zu operationalisieren, benötigen Sie leistungsstarke Tools, die benutzerfreundlich, skalierbar und unternehmenstauglich sind.

Die Cloudera Operational Database bietet eine Latenzzeit von weniger als einer Sekunde für zufällige Lese-/Schreibvorgänge und ist genau das, was für Echtzeitanwendungen, wie sie in der Finanzdienstleistungsbranche verwendet werden, benötigt wird.

Erste Schritte mit CML und COD…

Ich hoffe, Sie finden es nützlich,

Viel Spaß beim Programmieren!!