Discussione sull’articolo "Python, ONNX e MetaTrader 5: Creazione di un modello RandomForest con RobustScaler e preelaborazione dei dati PolynomialFeatures"
future_pr = dataset['<CLOSE>'].iloc[i + rand] dovrebbe essere: Altrimenti si otterrà un errore:
Un riferimento di colonna errato nella funzione labelling_relabeling_regression. Ho continuato a ricevere errori perché si cerca di accedere alla colonna '<CLOSE>' nel dataset, ma pandas non è in grado di trovarla perché il nome corretto della colonna è 'close', non '<CLOSE>'. La sensibilità alle maiuscole e le parentesi angolari aggiuntive fanno sì che pandas lanci un KeyError.
L'errore è molto semplice, ma chi segue potrebbe confondersi e rinunciare.
Poiché il resto del codice utilizza <CLOSE> ... probabilmente è meglio aggiungere una riga come:
dataset = dataset.rename(columns={'close': '<CLOSE>'})
Ho trovato un errore nel codice:
dovrebbe essere:
Altrimenti si otterrà un errore:
Riferimento di colonna errato nella funzione labelling_relabelling_regression. Ho continuato a ricevere errori perché si sta cercando di accedere alla colonna '<CLOSE>' nel dataset, ma pandas non riesce a trovarla perché il nome corretto della colonna è 'close', non '<CLOSE>'. A causa della sensibilità alle maiuscole e alle parentesi angolari aggiuntive, pandas lancia un KeyError.
È un errore molto semplice, ma qualcuno potrebbe confondersi e rinunciare.
Poiché il resto del codice utilizza <CLOSE> ... probabilmente è meglio aggiungere una riga come:
dataset = dataset.rename(columns={'close': '<CLOSE>'})
Grazie mille, darò un'occhiata, forse mi è sfuggito durante la modifica del codice!(
Nessun problema, signore. Un'altra raccomandazione: per coloro che non usano google colab e lavorano solo sulla propria macchina o su AWS o altro, non hanno bisogno di importare gdown
invece utilizzare quanto segue:
Primo:
Secondo:
sostituire la seguente sezione
# Save the pipeline
joblib.dump(pipeline, 'rf_pipeline.joblib')
# Convert pipeline to ONNX
onnx_model = convert_sklearn(pipeline, initial_types=initial_type)
# Save the model in ONNX format
model_onnx_path = "rf_pipeline.onnx"
onnx.save_model(onnx_model, model_onnx_path)
# Save the model in ONNX format
model_onnx_path = "rf_pipeline.onnx"
onnx.save_model(onnx_model, model_onnx_path)
# Connect Google Drive (if you work in Colab and this is necessary)
from google.colab import drive
drive.mount('/content/drive')
# Specify the path to Google Drive where you want to move the model
drive_path = '/content/drive/My Drive/' # Make sure the path is correct
rf_pipeline_onnx_drive_path = os.path.join(drive_path, 'rf_pipeline.onnx')
# Move ONNX model to Google Drive
shutil.move(model_onnx_path, rf_pipeline_onnx_drive_path)
print('The rf_pipeline model is saved in the ONNX format on Google Drive:', rf_pipeline_onnx_drive_path) con:
print(f'Il modello rf_pipeline in formato ONNX è salvato localmente a: {local_onnx_path}')
il modello sarà memorizzato in una sottocartella chiamata /model. Questo memorizzerà anche il modello come file jplotlib, nel caso in cui sia necessario per l'esecuzione. Inoltre, entrambi i modelli possono essere eseguiti direttamente da python per ottenere le previsioni.
Nessun problema, signore. Un'altra raccomandazione è per coloro che non usano google colab e si limitano a eseguire sulla propria macchina o su AWS, non hanno bisogno di importare gdown.
Utilizzare invece quanto segue:
Primo:
.
Secondo:
sostituire la seguente sezione
da:
print(f'Il modello rf_pipeline in formato ONNX è salvato localmente all'indirizzo: {local_onnx_path}')
Il modello sarà memorizzato nella sottodirectory /model. Questa è anche la posizione in cui il modello sarà memorizzato come file jplotlib, se dovesse servire in fase di esecuzione. Inoltre, entrambi i modelli possono essere eseguiti direttamente da python per ottenere le previsioni.
Corretto, ho inviato la versione del file tutorial al moderatore per l'approvazione.
Sì, non sono ancora arrivato all'apprendimento per rinforzo))))))
Perché non è stato utilizzato il gradient bousting come algoritmo più recente (visto che ci si lamenta che la foresta casuale è già vecchia)? È successo per caso o c'era qualche ragione? Credo che il bousting sia presente in Sklearn.
Perché non è stato utilizzato il gradient bousting come algoritmo più recente (visto che ci si lamenta che la foresta casuale è già vecchia)? È successo per caso o c'era qualche ragione? Credo che il bousting sia presente in Sklearn.
È solo che la foresta è stata scelta come semplice esempio)Boosting nel prossimo articolo, ora lo sto facendo un po')
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Il nuovo articolo Python, ONNX e MetaTrader 5: Creazione di un modello RandomForest con RobustScaler e preelaborazione dei dati PolynomialFeatures è stato pubblicato:
Random Forest è un potente strumento dell'apprendimento automatico. Per capire meglio come funziona, visualizziamolo come un enorme gruppo di persone che si riunisce e prende decisioni collettive. Tuttavia, invece di persone reali, ogni membro di questo gruppo è un classificatore o predittore indipendente della situazione attuale. All'interno di questo gruppo, una persona è un albero decisionale in grado di prendere decisioni in base a determinati attributi. Quando la foresta casuale prende una decisione, utilizza la democrazia e il voto: ogni albero esprime la propria opinione e la decisione viene presa sulla base di più voti.
La foresta casuale è ampiamente utilizzata in diversi campi e la sua flessibilità la rende adatta sia ai problemi di classificazione che di regressione. In un compito di classificazione, il modello decide a quale classe predefinita appartiene lo stato corrente. Ad esempio, nel mercato finanziario, ciò potrebbe significare la decisione di acquistare (classe 1) o vendere (classe 0) un asset sulla base di una serie di indicatori.
Tuttavia, in questo articolo ci concentreremo sui problemi di regressione. La regressione nell'apprendimento automatico è un tentativo di prevedere i valori numerici futuri di una serie temporale sulla base dei suoi valori passati. Invece della classificazione, che assegna gli oggetti a determinate classi, la regressione mira a prevedere numeri specifici. Potrebbe essere, ad esempio, la previsione dei prezzi delle azioni, della previsione della temperatura o di qualsiasi altra variabile numerica.
Autore: Yevgeniy Koshtenko