Uczymy AI przewidywać kursy krypto: Część czwarta, analiza wyników - niemałe zaskoczenie

in Polish HIVE3 days ago (edited)

Muszę przyznać, że jestem dosyć pozytywnie zaskoczony, tym co udało się osiągnąć. Jest to zupełnie co innego niż się spodziewałem. Może pochwalę się, wyniki wyglądają tak:

  • niebieska linia, kurs faktyczny
  • czerwona linia, kurs przewidziany

Skrypt uruchomiłem dla takich parametrów:

Link do arkusza Google (można komentować):
https://docs.google.com/spreadsheets/d/1_sDlIT4MfO6CRIhP86vr87NeZ59ZSGqbUJrOD2YqFcw/edit?usp=sharing

Jak zawsze daję możliwość samodzielnego uruchomienia skryptu:
https://fatmusicpl.github.io/voters.github.io/neural_network8.html

Oraz udostępniam pełny kod źródłowy:
https://github.com/fatmusicpl/voters.github.io/blob/master/neural_network8.html


Największym zaskoczeniem jest to że w paru dniach, praktycznie przewidzenia w 100% pokrywają się. Ale jeśli są błędy to bardzo duże. Spodziewałem się zupełnie odwrotnej sytuacji. Raczej średniego błędu, ale równomiernie rozłożonego. Błędy na tą chwilę są zbyt duże, by tego dało się używać i perspektywa jednego dnia to zbyt mało...


W stosunku do poprzedniej wersji udało się dodać:

  • dodatkowe dane: market_cap oraz total_volume,
  • wyświetlenie danych i wyników na arkuszu kalkulacyjnym,
  • możliwość zmieniania kilku parametrów,

Jak ktoś pierwszy raz trafił na ten artykuł, to polecam zapoznanie się z poprzednimi częściami:

Uczymy AI przewidywać kursy krypto: Część pierwsza, zacznijmy od nauki dodawania

Uczymy AI przewidywać kursy krypto: Część druga, uczymy przewidywania funkcji liniowej

Uczymy AI przewidywać kursy krypto: Część trzecia, nie ostatnia

AI w przewidywaniu opłacalności stakowania [HDB, PIV, SCC]
Taki przedwstępny post, od którego zacząłem zabawę.

W skryptach wykorzystałem biblioteki:

Dane kursów pobrałem z CoinGecko.

Do nauki bardzo pomocne były czaty AI:

Oba są moim zdaniem porównywalne, DeepSeek daje bardziej rozbudowane odpowiedzi, Copilot jest bardziej zwięzły.

I taka złota myśl, której nauczyłem się w pracy: Ważne jest by wyciągać wnioski z tego co się zrobiło - to nazywa się retrospekcja. Co zrobiło się dobrze, a co można poprawić. W prawdziwym życiu, nie uczymy się jak AI. nie mamy miliarda prób i drugiego miliarda danych. Podejmujemy decyzję na kilku wcześniejszych doświadczeniach i kilku informacjach. A odpowiedź jest albo dobra albo zła. I często na tym się fiksujemy, nie rozkładając tego na czynniki pierwsze. I czasem mimo iż coś się za pierwszym razem nie udało, to problem był w procesie, a nie w decyzji...

Nie bardzo umiem lać wodę 😜 A przydało by się coś więcej napisać, bo chyba im dłuższy tekst, tym ma szansę trafić do większej ilości osób 😆 Więc, uprzedzam, że dalej już nie będzie żadnych istotnych informacji i można zakończyć w tym miejscu czytanie. I raczej przetestować to samemu. A niestety słabo to testowałem, robię to sobie tak trochę po godzinach i nie mam testerów jak w pracy, ani code review. Więc jak ktoś rzuci na to okiem i powie gdzie mogą być błędy, albo cokolwiek co można poprawić to będę wdzięczny. A i jak zawsze podkreślam nie programuję zawodowo w JavaScript. Ten język wybrałem do tego zadania, ponieważ można uruchomić go bezpośrednio z przeglądarki, no i ma biblioteki do AI - a profesjonalnie mówiąc nie AI, tylko uczenie maszynowe. A tak na marginesie, ani nie inteligencja, ani nie uczenie. Tylko sprytny algorytm, dobierający losowo wagi do danych wejściowych. Potem je testuje i wybiera najlepsze. Dobry analityk, nie będzie potrzebował takiego narzędzia, choć może być im zainteresowany, bo to inny sposób rozwiązania problemu, choć pewnie wydajnościowo gorszy, od tradycyjnych. Ale moim zdaniem, widać że ma potencjał. Kwestia dodania większej ilości danych, użycia większej ilości funkcji... Czyli w skaki makro budowy centrów obliczeniowych i centrów danych oraz elektrowni atomowych które dostarczą im prąd. A wszystko po to by rozwiązywać dawno rozwiązane problemy. Bo jak widać w polu outputs od pierwszego zadania z dodawaniem, jest odpowiedź 😆 - czyli znamy wynik, ale nie wiemy jak go obliczyć... Przypominam fragment kodu:
outputs.push(num1 + num2);
a w polu inputs są dane wejściowe:
inputs.push([num1, num2]);

A człowiek działa odwrotnie, buduje równania by obliczyć nie znany wynik. Ale do tego trzeba mieć trochę wiedzy, właśnie z takiej analizy, albo statystyki.


Jak zwykle kocie podziękowania, dla wspierających:


Link do generatora kocich podziękowań: https://fatmusicpl.github.io/voters.github.io/hivejs.html


---=== Advertisement ===---


pivx.promo - PIVX Faucet, a nice coin for PoS
Honeygain - Sharing network and content delivery, for rewards
Grass - Sharing network for rewards in the Solana (SOL) cryptocurrency
AutoFaucet - Faucet with a very wide selection of coins
Final Autoclaim - Faucet with a very wide selection of coins
FaucetCrypto - Faucet with a wide selection of coins and the ability to withdraw BTC directly to the wallet

Sort:  

Trzeba oszczędzać wodę :)

Chyba ciężko będzie przewidzieć akcj3 bez analizy innych danych . Są wydarzenia które zmieniają ceny jak np deepseek ostatnio

dokładnie...