sql >> Databáze >  >> NoSQL >> HBase

Použití COD a CML k vytváření aplikací, které předpovídají skladová data

Ne, fakt ne. Pravděpodobně nebudete bohatí, pokud nebudete opravdu tvrdě pracovat... Jakkoli by to bylo hezké, nemůžete skutečně předvídat cenu akcií pouze na základě ML, ale teď mám vaši pozornost!

V návaznosti na svůj předchozí příspěvek na blogu o tom, jak úžasné a snadné je vyvíjet webové aplikace podporované Cloudera Operational Database (COD), jsem zahájil malý projekt integrace COD s dalším cloudovým prostředím CDP, Cloudera Machine Learning (CML).

V tomto demu se pokusím předpovědět chování otevřené ceny akcií na základě jejich historických dat, tedy zda otevřená cena akcií poroste nebo klesne. Nejsem datový vědec, ale na internetu je mnoho příkladů, jak to udělat (vzal jsem několik vzorků kódu, opravil je a upravil pro práci s COD). K tomuto účelu použiji algoritmus LSTM (Long Short-term memory). RNN obecně (rekurentní neuronové sítě) a LSTM konkrétně fungují velmi dobře s daty časových řad

Aby se předešlo pochybnostem, nejsme předstírali, že jsme experti na burzu, a nic v tomto příspěvku na blogu by nemělo být v žádném případě považováno za finanční poradenství. Toto je čistě příklad toho, jak vyvinout řešení pomocí softwaru Cloudera.

Hlavní komponenty použité v této ukázce:

  • Cloudera Operational Database (COD), jak je uvedeno v mém předchozím příspěvku, je spravované řešení dbPaaS dostupné jako zkušenost s Cloudera Data Platform (CDP)
  • CML je navrženo pro datové vědce a ML inženýry, kterým umožňuje vytvářet a spravovat projekty ML od kódu až po produkci. Hlavní funkce CML: 
    • Vývojové prostředí pro datové vědce, izolované, uzavřené a elastické
    • Produkční sada nástrojů ML  – Nasazení, poskytování, monitorování a správa modelů ML
    • Poskytování aplikací – vytváření a poskytování vlastních aplikací pro případy použití ML
    • Předpřipravené aplikace poskytující informace pro podnikové uživatele
      • Jednoduché vytváření řídicích panelů a aplikací přetažením pomocí Cloudera Data Visualization
      • Aplikace šablon jako startovací sady pro vaše případy použití
  • Skladová data – pro stahování skladových dat jsem použil službu alpha vantage (bezplatná verze). V zásadě se jedná o službu, která vám umožňuje získat denní souhrn pro statistiky zásob (otevřené, uzavřené, nízké, velké objemy)

Sestavte aplikaci

První věc, kterou musíme udělat, je vytvořit databázi v COD.

1. Přihlaste se do Cloudera Data Platform Public Cloud control plane

2. Zvolte Operational Database a poté klikněte na “Create Database”

3. Vyberte své prostředí a pojmenujte databázi

4. Jakmile je databáze spuštěna, přejděte na kartu JDBC

5. Nastavte heslo pro pracovní zátěž CDP

6. Nyní přejděme k CML – Vraťte se do řídicí roviny a klikněte na „Strojové učení“ a poté na „Provision workspace“  Pojmenujte svůj pracovní prostor a vyberte prostředí, které chcete používat

7. Jakmile je pracovní prostor zřízen, vytvořte nový projekt, pojmenujte jej a pro zdrojový kód použijte git. Veškerý zdrojový kód naleznete zde.

8. Jakmile je projekt vytvořen, uvidíte všechny soubory v adresáři projektu:

9. Pár dalších logistik – pro projekt musíme vytvořit proměnné prostředí, které budou uchovávat přístup k naší databázi, a alpha vantage API Key. Chcete-li to provést, přejděte na kartu „Nastavení projektu ->Upřesnit“

10. Nyní začněme projekt provozovat – klikněte na „nová relace“, pojmenujte svou relaci, vyberte „python 3“ a profil zdroje

11. Nainstalujte všechny požadované knihovny buď na terminálu, nebo na CLI ve spodní části, spuštěním „pip3 install -r requirements.txt“

12. Dalším krokem je vytvoření naší tabulky, ve které budou data uložena v naší databázi. za tímto účelem spusťte instalační skript:

13. Nyní začněme testovat náš model! Přejděte na runner.py a spusťte jej. V podstatě tento skript dělá následující:

a) Získává údaje o denních zásobách z alpha vantage

b) Základní transformace dat

c) Uložte data do Cloudera Operational Database 

d) Spusťte model a vytvořte soubor modelu (tech_ind_model.py)

e) Spusťte předpověď za posledních 120 dní

f) Vypočítejte předpokládané zisky, pokud budeme nakupovat a prodávat akcie za přesné sazby

14. Zatímco program běží, uvidíte, že shromažďuje data pro každou akcii, nahrává je na dobírku, provádí předpověď a vykresluje graf zobrazující předpokládanou cenu vs. aktuální cenu. Ačkoli graf ukazuje, že trend je ve většině případů velmi podobný, i malý rozdíl může ovlivnit celkový příjem z těchto doporučení. Výstup běhu obsahuje níže uvedené informace pro každou akcii:

a) doporučení:ponechat/koupit/prodat 

b) poslední předpokládaná cena:poslední předpokládaná cena 

c) cena:poslední cena

d) predikovaný:predikce pro příští otevřenou cenu

e) signál:vysoký/nízký – je doporučení silné/ne

15. Na základě poslední doby, kdy jsem program spustil, bych na základě doporučení přišel o peníze ve většině akcií, ale zároveň se našlo několik, které předpovídaly zisk až 20 %!!!

Algoritmické obchodování obecně a predikce cen akcií jsou nyní témata, která existují již mnoho let. Abyste mohli zprovoznit případy použití strojového učení, jako je tento, potřebujete výkonné nástroje, které jsou snadno použitelné, škálovatelné a připravené na podnikání.

Cloudera Operational Database poskytuje subsekundovou latenci pro náhodné čtení/zápis a je přesně to, co je potřeba pro aplikace v reálném čase, jako jsou ty, které se používají v odvětví finančních služeb.

Chcete-li začít s CML a COD…

Doufám, že to pro vás bude užitečné,

Šťastné kódování!!


  1. MongoDb:Rozdíl mezi $push/$addtoset

  2. Vraťte poslední dokument z vyhledávání

  3. Požadavky na prostor datové struktury Redis

  4. Nový způsob správy databází s otevřeným zdrojovým kódem