Ottenere un set di dati
Ottenere un set di dati: .
Valore, Volume delle azioni.
Analizzarlo.
Scegliere e Esplorare il Data Set
Questa serie di articoli vogliono essere un approfondimento tecnico su come approcciarela previsione delle azioni attraverso le reti neurali ricorrenti LSTM e GRU.
LSTM (Long Short-Term Memory)
Le reti LSTM sono un tipo di rete neurale ricorrente progettata per affrontare il problema della memoria a lungo termine nelle sequenze di dati.Le LSTM contengono unità di memoria chiamate "celle" che possono mantenere informazioni per lungo tempo e decidere quando dimenticale o aggiornarle.
Ciò avviene attraverso l'uso di tre porte:
Input gate): Controlla quanti dati nuovi entrano nella cella.
Output gate): Decide quali informazioni nella cella vengono effettivamente trasmesse all'output.
Forget gate: Decide quali informazioni nella cella vengono dimenticate o mantenute.
Queste porte consentono alle LSTM di apprendere e memorizzare le dipendenze a lungo termine nei dati di input, rendendole particolarmente efficaci in compiti che richiedono la comprensione di lunghe sequenze temporali o la memorizzazione di informazioni a lungo termine.
GRU (Gated Recurrent Unit)
Le reti GRU sono un'altra variante delle reti neurali ricorrenti che affrontano il problema della memoria a lungo termine in modo più semplice rispetto alle LSTM.
Le GRU combinano l'unità di memoria e le porte di aggiornamento in un'unica struttura, eliminando la necessità di una porta di dimenticanza separata.
In particolare, una GRU ha due porte principali:
Update gate: Decide quanto delle informazioni precedenti nella cella vengono mantenute.
Reset gate: Decide quanto delle informazioni precedenti vengono dimenticate.
Questa struttura più semplice rende le GRU più facili da addestrare rispetto alle LSTM e richiede meno parametri, rendendole più efficienti in termini computazionali in alcuni contesti.
Tuttavia, potrebbero essere meno potenti nelle sequenze di dati che richiedono una comprensione molto a lungo termine.
Premessa: Validità delle previsioni
Il ricorso a reti neurali per la previsione delle azioni rappresenta un buon approccio per lo studio e previsione di trend numerici come il valore delle azioniTutavia il valore delle azioni possono essere influenzate non solo dalla loro storia ma anche da eventi di difficle previsone
Come ad esempio eventi geopolitici, crisi finanziarie non previste, eventi sfavorevoli all'interno dell'azienda (cambio management, problemi tecnici, giuridici etc)
Sebbene le reti neurali possano essere potenti strumenti per analizzare e interpretare dati storici e modellare tendenze, non possono prevedere con precisione eventi imprevedibili o eccezionali.
Questo perché tali eventi non sono necessariamente correlati a modelli o dati storici esistenti, ma possono essere il risultato di circostanze uniche o di fattori completamente nuovi.
Pertanto, mentre gli approcci tecnici come l'uso di reti neurali possono fornire utili strumenti analitici per comprendere il comportamento passato e presente delle azioni, è fondamentale integrare tali analisi con una comprensione approfondita del contesto e con un monitoraggio costante degli eventi esterni che potrebbero influenzare i mercati finanziari.
Importanza del Data Set
Questo punto è estremamente importante e puo' significativamente cambiare le prevsioniInfatti secondo l'esperienza che ho acquisito in questo studio, due fattori possono influenzare le previsioni
- dimensioni del Data Set
-
Modello e complessità del modello.
Anticipo che in questi articoli parleremo di reti bidirezionali LSTM/GRU.
Scelta dei dati
Ci possono essere varei fonti per la ottenere dati:- yahoo finance. dati storici
- sito ufficiale di Kaagle
- siti istituzionali di Banche Italiane o Amerciane
Una volta fatta la scelta ho modificato il file, trasformandolo con tre colonne
- data un numero progressivo intero(min=1), che rappresenta i giorni del periodo
- valore delle azioni al momento della chiusura, del mercato di riferimento
- Volume Il volume delle azioni scambiate in ogni periodo
Analisi del Data Set
Scelto e trasformato ildata Set, andrà verificata la sua integrità e completezzaEcco il codice python per tale analisi:
import pandas as pd
import matplotlib.pyplot as plt
# Caricamento dei dati
data = pd.read_csv("percorso al data set")
# Esplorazione delle prime righe
print("Prime 5 righe del dataset:")
print(data.head())
# Informazioni sul dataset
print("\nNumero di righe e colonne:", data.shape)
print("\nInformazioni sulle colonne:")
print(data.info())
print("\nValori nulli:")
print(data.isnull().sum())
# Distribuzione della variabile 'valore'
plt.hist(data['valore'], bins=20)
plt.xlabel('Valore')
plt.ylabel('Frequenza')
plt.title('Distribuzione della variabile "valore"')
plt.show()
# Correlazioni tra 'valore' e 'volume'
correlation = data['valore'].corr(data['volume'])
print("Correlazione tra 'valore' e 'volume':", correlation)
NotaAssicurati di inserire il percorso al Data set nella istruzione: data = pd.read_csv("percorso al data set") Suggerisco di caricare online il data set
In questo caso il percorso sarà: https://www.dominio.it/dataset.csv