Appunti di Machine Learning in ambito finanziario – IV parte

Appunti di Machine Learning in ambito finanziario – IV parte

Luglio 15, 2022 0 Di Ruggero Grando

Negli appunti precedenti abbiamo calcolato il prezzo futuro dell’asset ETH/BTC con il metodo della regressione polinomiale. Ora, è il momento di introdurre la parte relativa al calcolo del prezzo futuro di un asset con l’ausilio di una rete neurale. Come al solito, l’intero progetto sarà sviluppato in linguaggio Python con l’ausilio dell’ambiente di sviluppo Visual Studio Code.

Operativamente, la prima cosa che dobbiamo fare, è l’importazione delle librerie necessarie per poter implementare l’uso della rete neurale. Nelle righe seguenti sono presenti gli import necessari per tale operazione.

Leggi tutto
1 import numpy as np
2 import pandas as pd
3 import matplotlib.pyplot as plt
4 from sklearn.metrics import accuracy_score
5 from pylab import mpl, plt
6 import ccxt
7 import calendar
8 from datetime import datetime
9 import logging
10 import tensorflow as tf
11 from keras.layers import Dense
12 from keras.models import Sequential
13 import seaborn as sb

Nel codice riportato sopra, le righe più importanti sono la riga dieci, la riga undici e la riga dodici per l’obiettivo che ci siamo proposti. Più in dettaglio, con la riga dieci importiamo la libreria Tensorflow che ci permetterà di costruire dei modelli di Machine Learning. Con le righe undici e dodici, importiamo, rispettivamente, le classi Dense e Sequential da Keras che saranno utilizzate per costruire il modello di rete neurale. Nello specifico, con la classe “Dense” possiamo rappresentare un livello di rete neurale costituito da n neuroni, mentre la classe “Sequential” ci permette di aggiungere in modo sequenziale i livelli alla nostra rete neurale.

Per quanto concerne l’importazione delle altre librerie, ne abbiamo già parlato ampiamente negli articoli precedenti, comunque, a grandi linee sappiate che servono per poter visualizzare i grafici (libreria Matplotlib), eseguire il download dei dati degli assets (libreria Ccxt), e per altre operazioni meno importanti.

A questo punto, possiamo continuare con la spiegazione del codice, e in particolare la seguente.

15 #Set Numpy
16 np.random.seed(100)
17
18 #Set plt
19 plt.style.use('seaborn')
20 plt.rcParams['savefig.dpi'] = 300
21 plt.rcParams['font.family'] = 'serif'
22
23 #Set Tensorflow
24 tf.random.set_seed(100)
25 tf.get_logger().setLevel(logging.ERROR)

La riga sedici permette di estrarre gli stessi valori se il metodo numpy.random.rand viene invocato più volte. Probabilmente, tale istruzione non ci servirà nel corso di questo articolo di appunti, e quindi non approfondirò con ulteriori spiegazioni. La riga diciannove assegna lo stile “seaborn” all’istanza plt della classe Matplotlib. Le righe venti e ventuno assegnano i valori ‘300’ e ‘serif’ ai parametri “savefig.dpi” e “font.family” dell’istanza plt che già conosciamo. Proseguendo, troviamo le righe ventiquattro e venticinque che impostano rispettivamente il seed dell’ambiente Tensorflow e la configurazione del livello di log.

Continuando con la lettura del codice, le seguenti righe di codice costituiscono una funzione fondamentale del progetto, la “model_create”.

33 def model_create(total_columns):
34    model = Sequential()
35    model.add(Dense(512, input_dim=total_columns, activation='relu')) #livello di input + livello hidden
36    model.add(Dense(1, activation='linear'))#livello di output
37    model.compile(loss='mse', optimizer='rmsprop')
38    return model

Come potete osservare, tale funzione restituisce l’oggetto model, ossia la rete neurale che abbiamo costruito. Nella riga trentaquattro definiamo il modello di rete neurale che nel nostro caso è sequenziale.

Il modello sequenziale di Keras.

Come già anticipato Keras è un interfaccia ad alto livello che utilizza Tensorflow o Theano come backend per la creazione dei modelli di rete neurale. Vi sono principalmente due modi di svilupparli: quello sequenziale e quello funzionale.

I modelli sequenziale e funzionale di Keras.
Fig.1
(Keras, il modello sequenziale e funzionale)

Il modello sequenziale è quello più semplice e può essere rappresentato da una pila di livelli. Tali, ci permetteranno di costruire strato per strato il modello finale di rete neurale. L’altra opzione è l’utilizzo del modello funzionale che viene utilizzato per creare del modelli più complessi di rete neurale che vedremo più avanti.

Per quanto riguarda il modello sequenziale potrete leggere un esempio del suo utilizzo dal seguente indirizzo internet: https://www.megalinux.cloud/il-modello-sequenziale-di-keras-un-esempio-di-utilizzo/

Pagina Successiva

No votes yet.
Please wait...

Pagine: 1 2 3 4 5