sql >> Database >  >> NoSQL >> HBase

COD en CML gebruiken om applicaties te bouwen die voorraadgegevens voorspellen

Nee niet echt. Je zult waarschijnlijk niet rijk worden tenzij je heel hard werkt... Hoe mooi het ook zou zijn, je kunt een aandelenkoers niet echt voorspellen op basis van alleen ML, maar nu heb ik je aandacht!

Voortbordurend op mijn vorige blogpost over hoe geweldig en gemakkelijk het is om webgebaseerde applicaties te ontwikkelen die worden ondersteund door Cloudera Operational Database (COD), begon ik een klein project om COD te integreren met een andere CDP-cloudervaring, Cloudera Machine Learning (CML).

In deze demo zal ik proberen het gedrag van de open prijs van aandelen te voorspellen op basis van hun historische gegevens, wat betekent of een open prijs van een aandeel zal stijgen of dalen. Ik ben geen datawetenschapper, maar er zijn veel voorbeelden online over hoe dat te doen (ik heb wat codevoorbeelden genomen, ze gerepareerd en aangepast om met COD te werken). Hiervoor zal ik het LSTM-algoritme (Long Short-Term Memory) gebruiken. RNN in het algemeen (recurrente neurale netwerken) en LSTM in het bijzonder werken heel goed met tijdreeksgegevens

Voor alle duidelijkheid:we doen niet alsof we beursexperts zijn, en niets in deze blogpost mag op enigerlei wijze worden opgevat als financieel advies. Dit is puur een voorbeeld van hoe je een oplossing kunt ontwikkelen met de software van Cloudera.

Belangrijkste componenten die in deze demo worden gebruikt:

  • Cloudera Operational Database (COD), zoals vermeld in mijn vorige bericht, is een beheerde dbPaaS-oplossing die beschikbaar is als een ervaring in Cloudera Data Platform (CDP)
  • CML is ontworpen voor datawetenschappers en ML-ingenieurs, waardoor ze ML-projecten van code tot productie kunnen maken en beheren. Belangrijkste kenmerken van CML: 
    • Ontwikkelomgeving voor datawetenschappers, geïsoleerd, gecontaineriseerd en elastisch
    • Production ML Toolkit  – Implementatie, presentatie, monitoring en beheer van ML-modellen
    • App Serving – Bouw en serveer aangepaste applicaties voor ML-gebruiksscenario's
    • Voorverpakte applicaties tot inzichten voor zakelijke gebruikers
      • Eenvoudig, slepen-en-neerzetten van dashboards en apps met Cloudera Data Visualization
      • Sjabloonapplicaties als starterkits voor uw use-cases
  • Voorraadgegevens - voor het ophalen van de voorraadgegevens heb ik alpha vantage-service gebruikt (gratis versie). Kortom, het is een service waarmee u een dagelijks overzicht kunt krijgen van aandelenstatistieken (open, gesloten, laag, hoog volume)

Bouw de applicatie

Het eerste dat we moeten doen, is een database maken in COD.

1. Log in op Cloudera Data Platform Public Cloud control plane

2. Kies Operationele Database en klik vervolgens op “Create Database”

3. Kies je omgeving en geef je database een naam

4. Zodra de database actief is, schakelt u over naar het JDBC-tabblad

5. Stel uw CDP-wachtwoord voor werkbelasting in

6. Laten we nu naar CML gaan - Ga terug naar het besturingsvlak en klik op "Machine learning" en vervolgens op "Werkruimte inrichten" Geef uw werkruimte een naam en selecteer de omgeving die u wilt gebruiken

7. Zodra de werkruimte is ingericht, maakt u een nieuw project, geeft u het een naam en gebruikt u git voor de broncode. Alle broncode is hier te vinden.

8. Zodra het project is aangemaakt, ziet u alle bestanden in de projectdirectory:

9. Weinig extra logistiek - we moeten omgevingsvariabelen maken voor het project, waarin de toegang tot onze database en de alpha vantage API-sleutel worden opgeslagen. Ga hiervoor naar het tabblad “projectinstellingen ->geavanceerd”

10. Laten we nu beginnen met het uitvoeren van het project - klik op "nieuwe sessie", geef uw sessie een naam, kies "python 3" en het bronprofiel

11. Installeer op de terminal of de CLI onderaan alle vereiste bibliotheken door "pip3 install -r requirements.txt" uit te voeren

12. De volgende stap is het maken van onze tabel waarin de gegevens in onze database worden opgeslagen. voer voor dat doel het setup-script uit:

13. Laten we nu beginnen met het testen van ons model! Ga naar runner.py en voer het uit. In principe doet dit script het volgende:

a) Haalt de dagelijkse voorraadgegevens uit het alfa-perspectief

b) Basisgegevenstransformatie

c) Sla de gegevens op in Cloudera Operational Database 

d) Voer het model uit en maak het modelbestand (tech_ind_model.py)

e) Voer de voorspelling uit voor de afgelopen 120 dagen

f) Bereken de voorspelde inkomsten als we aandelen kopen en verkopen tegen de exacte koersen 

14. Terwijl het programma loopt, zult u zien dat het gegevens verzamelt voor elk aandeel, het uploadt naar COD, de voorspelling uitvoert en een grafiek plot die de voorspelde prijs versus de huidige prijs weergeeft. Hoewel de grafiek laat zien dat de trend in de meeste gevallen erg op elkaar lijkt, kan zelfs een klein verschil de totale opbrengst van die aanbevelingen beïnvloeden. De output van de run bevat de onderstaande informatie voor elk aandeel:

a) aanbeveling:houden/kopen/verkopen 

b) laatst voorspelde:laatst voorspelde prijs 

c) prijs:laatste prijs

d) voorspeld:voorspelling voor de volgende open prijs

e) signaal:hoog/laag – is de aanbeveling sterk/niet

15. Op basis van de laatste keer dat ik het programma uitvoerde, zou ik op basis van de aanbevelingen geld verliezen in de meeste aandelen, maar tegelijkertijd waren er een paar die een winst voorspelden tot 20%!!!

Nu zijn algoritmische handel in het algemeen en het voorspellen van aandelenkoersen onderwerpen die al vele jaren bestaan. Om dergelijke gebruiksscenario's voor machine learning te operationaliseren, hebt u krachtige tools nodig die gebruiksvriendelijk, schaalbaar en bedrijfsklaar zijn.

Cloudera Operational Database biedt een latentie van minder dan een seconde voor willekeurig lezen/schrijven en is precies wat nodig is voor realtime toepassingen zoals die worden gebruikt in de financiële dienstverlening.

Aan de slag met CML en COD...

Ik hoop dat je het nuttig vindt,

Veel plezier met coderen!!


  1. Apache Reverse Proxy configureren voor het hosten van Laravel Echo Server op productie

  2. Handleiding voor het gebruik van Apache HBase-poorten

  3. Laravel-caching begrijpen:cache-façade en Redis

  4. MongoDB krijgt SubDocument