top of page

Commenti del forum

Previsione tempi di lavorazione
In Deep Learning
Martina Giasi
Computer Vision 1
Computer Vision 1
21 feb 2024
Salve e benvenuto nel forum! Per affrontare il tuo problema di previsione dei tempi di lavorazione degli ordini utilizzando il deep learning, ci sono diverse strategie e considerazioni da tenere in considerazione. 1. Preprocessing dei dati: Prima di alimentare i dati alla rete neurale, รจ importante eseguire un buon preprocessing per preparare i dati in modo ottimale. Questo puรฒ includere la normalizzazione dei dati per ridurre la scala dei valori e rendere piรน semplice il processo di apprendimento della rete neurale. Ecco un esempio di come potresti normalizzare i tuoi dati utilizzando la libreria scikit-learn in Python: from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test) 1. Architettura della rete neurale: La scelta dell'architettura della rete neurale รจ cruciale per il successo del modello. Nel tuo caso, potresti considerare l'utilizzo di reti neurali ricorrenti (RNN) o reti neurali convoluzionali (CNN) in combinazione con strati densi per gestire la sequenzialitร  dei dati temporali e le caratteristiche spaziali dei dati, rispettivamente. Ecco un esempio di come potresti definire una semplice rete neurale usando TensorFlow e Keras: import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense model = Sequential([ LSTM(64, input_shape=(X_train.shape[1], X_train.shape[2])), Dense(1) ]) 1. Ottimizzatori e funzioni di perdita: La scelta dell'ottimizzatore e della funzione di perdita puรฒ avere un impatto significativo sulle prestazioni del modello. Puoi sperimentare con diversi ottimizzatori come Adam, RMSprop o SGD e diverse funzioni di perdita come la mean squared error (MSE) o la mean absolute error (MAE). Ecco un esempio di come potresti compilare il modello con l'ottimizzatore Adam e la funzione di perdita MSE: model.compile(optimizer='adam', loss='mse') 1. Utilizzo dei dati degli articoli: Hai menzionato di avere dati su ogni singolo articolo contenuto nella commessa. Questi dati possono essere utilizzati per arricchire il set di dati della tua rete neurale. Ad esempio, potresti considerare l'aggiunta di features come il tipo di materiale utilizzato, la complessitร  dell'articolo, o altre caratteristiche rilevanti che potrebbero influenzare i tempi di lavorazione. 1. Iperparametri della rete neurale: Gli iperparametri sono parametri esterni al modello che influenzano le prestazioni e la complessitร  del modello. Alcuni esempi di iperparametri per una rete neurale includono il numero di neuroni in ogni strato, il tasso di apprendimento dell'ottimizzatore, il numero di epoche di addestramento, il batch size, e cosรฌ via. Trovare i valori ottimali per questi iperparametri รจ fondamentale per ottenere prestazioni ottimali dal tuo modello. # Esempio di definizione degli iperparametri num_neurons_layer1 = 64 num_neurons_layer2 = 64 learning_rate = 0.001 batch_size = 32 epochs = 50 La ricerca degli iperparametri puรฒ essere effettuata attraverso tecniche come il grid search, che esamina diverse combinazioni di iperparametri per trovare la migliore. Di seguito un esempio di come puoi implementare il grid search con scikit-learn: from sklearn.model_selection import GridSearchCV from tensorflow.keras.wrappers.scikit_learn import KerasRegressor # Funzione per creare il modello def create_model(num_neurons_layer1=64, num_neurons_layer2=64, learning_rate=0.001): model = Sequential([ LSTM(num_neurons_layer1, input_shape=(X_train.shape[1], X_train.shape[2]), return_sequences=True), Dropout(0.2), LSTM(num_neurons_layer2, return_sequences=False), Dense(1) ]) optimizer = Adam(learning_rate=learning_rate) model.compile(loss='mse', optimizer=optimizer) return model # Creazione del modello Keras per scikit-learn keras_model = KerasRegressor(build_fn=create_model, epochs=epochs, batch_size=batch_size, verbose=0) # Definizione della griglia degli iperparametri param_grid = { 'num_neurons_layer1': [32, 64, 128], 'num_neurons_layer2': [32, 64, 128], 'learning_rate': [0.001, 0.01, 0.1] } # Creazione dell'oggetto GridSearchCV grid_search = GridSearchCV(estimator=keras_model, param_grid=param_grid, scoring='neg_mean_squared_error', cv=3) grid_result = grid_search.fit(X_train, y_train) # Stampa dei risultati del grid search print("Best MSE: {:.4f} using {}".format(grid_result.best_score_, grid_result.best_params_)) In questo esempio, vengono definite diverse combinazioni di iperparametri nella griglia param_grid. La funzione create_modelย crea un modello Keras con gli iperparametri specificati. L'oggetto GridSearchCVย cerca la combinazione ottimale di iperparametri attraverso la validazione incrociata. I risultati, inclusi il miglior punteggio e i migliori parametri, vengono stampati alla fine. Ecco un esempio di come potresti strutturare il tuo codice utilizzando TensorFlow e Keras: import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense, Dropout from tensorflow.keras.optimizers import Adam # Definizione dell'architettura della rete neurale model = Sequential() model.add(LSTM(64, input_shape=(sequence_length, num_features), return_sequences=True)) model.add(Dropout(0.2)) model.add(LSTM(64, return_sequences=False)) model.add(Dense(1)) # Compilazione del modello optimizer = Adam(learning_rate=0.001) model.compile(loss='mse', optimizer=optimizer) # Addestramento del modello history = model.fit(X_train, y_train, epochs=50, batch_size=32, validation_data=(X_val, y_val)) # Valutazione del modello loss = model.evaluate(X_test, y_test) print("Test Loss:", loss) # Utilizzo del modello per fare previsioni predictions = model.predict(X_test) In questo esempio, si crea un modello sequenziale con due strati LSTM seguiti da un layer densamente connesso per l'output. Si utilizza l'ottimizzatore Adam con una learning rate di 0.001 e la funzione di perdita MSE. Successivamente, il modello viene addestrato sui dati di addestramento per 50 epoche con un batch size di 32, utilizzando i dati di validazione per monitorare le prestazioni durante l'addestramento. Il modello viene valutato sui dati di test e utilizzato per fare previsioni. Assicurati di adattare questo esempio ai tuoi dati specifici, modificando la forma degli input e degli output del modello e scegliendo l'architettura, l'ottimizzatore e la funzione di perdita piรน adatti al tuo problema. Buona fortuna!
2
0
Previsioni prezzo azioni con deep learning
In Deep Learning
Martina Giasi
Computer Vision 1
Computer Vision 1
01 set 2021
Forse questo codice puรฒ esserti utile รจ uno dei primi che ho trovato quando mi sono avvicinata all'I.A., anche io come te affascinata dalla semplicitร  di applicazione nell'ambito marketing e finanziario. import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline from matplotlib.pylab import rcParams rcParams['figure.figsize']=20,10 from keras.models import Sequential from keras.layers import LSTM,Dropout,Dense from sklearn.preprocessing import MinMaxScaler #carico file datase df=pd.read_csv("FileStoricoAzione.csv") df.head() df["Date"]=pd.to_datetime(df.Date,format="%Y-%m-%d") df.index=df['Date'] #grafico storico plt.figure(figsize=(16,8)) plt.plot(df["Close"],label='Storico prezzo di chiusura') #Ordino, filtro e normalizzo, data e chiusura. data=df.sort_index(ascending=True,axis=0) new_dataset=pd.DataFrame(index=range(0,len(df)),columns=['Date','Close']) for i in range(0,len(data)): new_dataset["Date"][i]=data['Date'][i] new_dataset["Close"][i]=data["Close"][i] scaler=MinMaxScaler(feature_range=(0,1)) final_dataset=new_dataset.values train_data=final_dataset[0:987,:] valid_data=final_dataset[987:,:] new_dataset.index=new_dataset.Date new_dataset.drop("Date",axis=1,inplace=True) scaler=MinMaxScaler(feature_range=(0,1)) scaled_data=scaler.fit_transform(final_dataset) x_train_data,y_train_data=[],[] for i in range(60,len(train_data)): x_train_data.append(scaled_data[i-60:i,0]) y_train_data.append(scaled_data[i,0]) x_train_data,y_train_data=np.array(x_train_data),np.array(y_train_data) x_train_data=np.reshape(x_train_data,(x_train_data.shape[0],x_train_data.shape[1],1)) #Costruisco il Modello neurale lstm_model=Sequential() lstm_model.add(LSTM(units=50,return_sequences=True,input_shape=(x_train_data.shape[1],1))) lstm_model.add(LSTM(units=50)) lstm_model.add(Dense(1)) inputs_data=new_dataset[len(new_dataset)-len(valid_data)-60:].values inputs_data=inputs_data.reshape(-1,1) inputs_data=scaler.transform(inputs_data) #compilo e alleno il modello lstm_model.compile(loss='mean_squared_error',optimizer='adam') lstm_model.fit(x_train_data,y_train_data,epochs=1,batch_size=1,verbose=2) #prendo un periodo di 60 giorni da predirre X_test=[] for i in range(60,inputs_data.shape[0]): X_test.append(inputs_data[i-60:i,0]) X_test=np.array(X_test) X_test=np.reshape(X_test,(X_test.shape[0],X_test.shape[1],1)) predicted_closing_price=lstm_model.predict(X_test) predicted_closing_price=scaler.inverse_transform(predicted_closing_price) #Salvo il modello allenato da poter riutilizzare o vendere lstm_model.save("modello_previsioni_azioni_da_1_milione_di_dollari.h5") #Grafico previsione train_data=new_dataset[:987] valid_data=new_dataset[987:] valid_data['Predictions']=predicted_closing_price plt.plot(train_data["Close"]) plt.plot(valid_data[['Close',"Predictions"]]) Per esempio prova ad usare questo file CSV Spero possa aiutarti nel tuo progetto, buona serata.๐Ÿ˜€
2
0
Forum Comments: Members_Page

Martina Giasi

Computer Vision 1
+4
Altre azioni
bottom of page