Preprocessing dei dati
Valore, Volumi e data.
Normalizzazione con il metodo MinMaxScaler
Preprocessing dei Dati
Questa fase è estremamente importante, per trasformare dati grezzi in dati pronti da elaborareQui il codice utilizzato:
from sklearn.preprocessing import MinMaxScaler
# Caricamento e preprocessing del dataset
data = pd.read_csv("percorso al data set")
data[['valore', 'volume']] = data[['valore', 'volume']].apply(lambda x: x.strip() if isinstance(x, str) else x)
scaler = MinMaxScaler()
data['data'] = range(len(data)) # Converti la data in un indice numerico sequenziale
data[['data', 'valore', 'volume']] = scaler.fit_transform(data[['data', 'valore', 'volume']])
data_original = data.copy() # Copia dei dati originali prima della normalizzazione
# Preparazione dei dati per il modello
X = data[['data', 'volume']].values
y = data['valore'].values
X = X.reshape((X.shape[0], 1, X.shape[1]))
Variabili Normalizzate
Come si vede il focus di queste istruzioni è la normalizzazione delle tre variabili:- data
- Valore
- Volume
Processo Normalizzazione
Per questo processo, la scelta è caduta su MinMaxScalerLa normalizzazione viene eseguita utilizzando il metodo fit_transform() del scaler, che calcola i parametri di normalizzazione e quindi applica la trasformazione di normalizzazione ai dati stessi.
Nelle reti neurali, la normalizzazione è un processo importante per garantire che tutte le caratteristiche dei dati abbiano lo stesso peso durante l'addestramento del modello.
Questo è particolarmente importante quando si utilizzano algoritmi di ottimizzazione che sono sensibili alla scala dei dati, come le reti neurali.
La normalizzazione dei dati comporta la trasformazione delle caratteristiche di input in modo che abbiano una distribuzione standard o uniforme.
Questo può comportare la trasformazione delle caratteristiche in modo che abbiano una media pari a zero e una deviazione standard pari a uno (standardizzazione) o la trasformazione in un intervallo specifico, come [0, 1] (normalizzazione Min-Max).
L'obiettivo principale della normalizzazione è quello di rendere più uniforme la distribuzione dei dati, in modo che il modello di rete neurale possa apprendere in modo più efficace e convergere più rapidamente durante l'addestramento.
Differenza tra StandardScaler e MinMaxScaler
-
StandardScaler: StandardScaler trasforma le caratteristiche in modo che abbiano una media zero e una deviazione standard unitaria.
Questo significa che i dati vengono trasformati in modo che abbiano una distribuzione normale con media zero e varianza uno. È utile quando i dati hanno una distribuzione normale o approssimativamente normale. -
2. MinMaxScaler: MinMaxScaler trasforma le caratteristiche in modo che siano comprese tra un intervallo specifico, di solito [0, 1].
Questo è utile quando si desidera mantenere le relazioni di scala dei dati originali e si conosce l'intervallo approssimativo dei dati.
Ad esempio, se si sa che i dati sono tutti positivi e si desidera mantenere questa relazione, è possibile utilizzare MinMaxScaler per normalizzare i dati in un intervallo compreso tra 0 e 1.
In sintesi, StandardScaler è utile quando si desidera standardizzare i dati intorno a una media zero e una deviazione standard unitaria, mentre MinMaxScaler è utile quando si desidera trasformare i dati in un intervallo specifico, come [0, 1], mantenendo le relazioni di scala originali dei dati.