sql >> Database teknologi >  >> NoSQL >> HBase

Brug af COD og CML til at bygge applikationer, der forudsiger lagerdata

Nej ikke rigtigt. Du bliver sandsynligvis ikke rig, medmindre du arbejder rigtig hårdt... Hvor godt det end ville være, kan du ikke rigtig forudsige en aktiekurs udelukkende baseret på ML, men nu har jeg din opmærksomhed!

I forlængelse af mit tidligere blogindlæg om, hvor fantastisk og nemt det er at udvikle webbaserede applikationer understøttet af Cloudera Operational Database (COD), startede jeg et lille projekt for at integrere COD med en anden CDP cloud-oplevelse, Cloudera Machine Learning (CML).

I denne demo vil jeg forsøge at forudsige adfærden af ​​åbningskursen på aktier baseret på deres historiske data, hvilket betyder, om en åbningskurs vil gå op eller ned. Jeg er ikke dataforsker, men der er mange eksempler online på, hvordan man gør det (jeg tog nogle kodeprøver, rettede dem og justerede dem til at fungere med COD). Til dette formål vil jeg bruge LSTM (Long Short-term memory) algoritmen. RNN generelt (tilbagevendende neurale netværk) og LSTM fungerer specifikt meget godt med tidsseriedata

For at undgå tvivl foregiver vi ikke at være aktiemarkedseksperter, og intet i dette blogindlæg skal på nogen måde opfattes som økonomisk rådgivning. Dette er udelukkende et eksempel på, hvordan man udvikler en løsning ved hjælp af Clouderas software.

Hovedkomponenter brugt i denne demo:

  • Cloudera Operational Database (COD), som nævnt i mit tidligere indlæg, er en administreret dbPaaS-løsning tilgængelig som en oplevelse i Cloudera Data Platform (CDP)
  • CML er designet til datavidenskabsfolk og ML-ingeniører, hvilket gør dem i stand til at oprette og administrere ML-projekter fra kode til produktion. Hovedtræk ved CML: 
    • Udviklingsmiljø for dataforskere, isoleret, containeriseret og elastisk
    • Production ML Toolkit  – Implementering, betjening, overvågning og styring af ML-modeller
    • App-servering – Byg og servér brugerdefinerede applikationer til ML use-cases
    • Færdigpakkede applikationer til indsigt til forretningsbrugere
      • Simpel, træk-og-slip opbygning af dashboards og apps med Cloudera Data Visualization
      • Skabelonapplikationer som startsæt til dine use-cases
  • Lagerdata – til at hente aktiedataene brugte jeg alpha vantage service (gratis version). Grundlæggende er det en tjeneste, der giver dig mulighed for at få en daglig oversigt over aktiestatistik (åben, luk, lav, høj volumen)

Byg applikationen

Det første, vi skal gøre, er at oprette en database i COD.

1. Log ind på Cloudera Data Platform Public Cloud kontrolplan

2. Vælg Operational Database og klik derefter på "Create Database"

3. Vælg dit miljø og navngiv din database

4. Når databasen er oppe at køre, skal du skifte til fanen JDBC

5. Indstil din adgangskode til CDP-arbejdsbelastning

6. Lad os nu gå til CML – Gå tilbage til kontrolplanet og klik på "Maskinlæring" og derefter "Provision workspace"  Giv dit arbejdsområde et navn, og vælg det miljø, du vil bruge

7. Når arbejdsområdet er klargjort, skal du oprette et nyt projekt, give det et navn og bruge git til kildekoden. Al kildekode kan findes her.

8. Når projektet er oprettet, vil du se alle filer i projektmappen:

9. Få yderligere logistik – vi skal oprette miljøvariabler til projektet, som vil gemme adgangen til vores database og alpha vantage API Key. For at gøre dette skal du gå til fanen "projektindstillinger ->avanceret"

10. Lad os nu begynde at køre projektet – klik på "ny session", giv din session et navn, vælg "python 3" og ressourceprofilen

11. Enten på terminalen eller CLI'en i bunden, installer alle de nødvendige biblioteker ved at køre "pip3 install -r requirements.txt"

12. Næste trin er at oprette vores tabel, hvor dataene vil blive gemt i vores database. til det formål skal du køre opsætningsscriptet:

13. Lad os nu begynde at teste vores model! Gå til runner.py og kør det. Grundlæggende gør dette script følgende:

a) Henter de daglige aktiedata fra alpha-vintage

b) Grundlæggende datatransformation

c) Gem dataene i Cloudera Operational Database 

d) Kør modellen og opret modelfilen (tech_ind_model.py)

e) Kør forudsigelsen for de sidste 120 dage

f) Beregn den forudsagte indtjening, hvis vi køber og sælger aktier til de nøjagtige kurser 

14. Mens programmet kører, vil du se, at det indsamler data for hver aktie, uploader det til COD, udfører forudsigelsen og plotter et diagram, der viser den forudsagte pris vs. den aktuelle pris. Selvom diagrammet viser, at tendensen i de fleste tilfælde er meget ens, kan selv en lille forskel påvirke den samlede indtjening fra disse anbefalinger. Resultatet af kørslen inkluderer nedenstående oplysninger for hver aktie:

a) anbefaling:behold/køb/sælg 

b) sidst forudsagt:sidste forudsagte pris 

c) pris:sidste pris

d) forudsagt:forudsigelse for den næste åbne pris

e) signal:høj/lav – er anbefalingen stærk/ikke

15. Baseret på sidste gang jeg kørte programmet, ville jeg tabe penge i de fleste aktier baseret på anbefalingerne, men samtidig var der et par stykker, der forudsagde et overskud på op til 20 %!!!

Nu er algoritmisk handel generelt og forudsigelse af aktiekurser emner, der har eksisteret i mange år. For at operationalisere maskinlæringsbrug som dette har du brug for kraftfulde værktøjer, der er nemme at bruge, skalerbare og klar til virksomheder.

Cloudera Operational Database giver undersekunds latency til tilfældig læsning/skrivning og er præcis, hvad der er brug for til realtidsapplikationer som dem, der bruges i finanssektoren.

For at komme i gang med CML og COD...

Håber du finder det nyttigt,

God kodning!


  1. Hvordan indstiller jeg standardværdien for et heltal i mongodb?

  2. Hvordan forespørger man MongoDB direkte fra Ruby i stedet for at bruge Mongoid?

  3. Redis:Returnerer alle værdier gemt i en database

  4. Hvordan ødelægger man job, der står i kø af resque-arbejdere?