-->

Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

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 approcciare
la 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 azioni
Tutavia 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 prevsioni
Infatti 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
Questo file andrà poi trasformato, con uno dei tanti convertitori online, in un file csv.

Analisi del Data Set

Scelto e trasformato ildata Set, andrà verificata la sua integrità e completezza
Ecco 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