L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 36
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Non credo che questo pacchetto sia sufficiente per costruire un modello capace di predire la variabile obiettivo. Tutto quello che ho trovato nell'aiuto è costruire un modello PCA basato su predittori, la variabile target non c'è affatto.
Ciao, hai usato la funzione sbagliata, avresti dovuto usare"nlPca" come indicato sul sito che ho dato, ma è colpa mia, avrei dovuto dare più dettagli...
Qui invece di prevedere - montato, prova, forse ci riuscirai
Non credo che questo pacchetto sia sufficiente per costruire un modello capace di predire la variabile obiettivo. Tutto quello che ho trovato nell'aiuto è costruire un modello PCA basato su predittori, la variabile target non c'è affatto.
Questo creerà un oggetto resNipals (Nonlinear Estimation by Iterative Partial Least Squares) con 5 componenti principali per analizzare la tabella metaboliteDataComplete. Invece di metaboliteDataComplete, puoi sostituire la tua tabella con i predittori. È importante non alimentare qui la variabile di destinazione, sarà usata più tardi.
Ma questo sarà sufficiente per analizzare le relazioni tra le variabili esaminando diversi grafici. Per creare un modello predittivo, viene quindi costruito un modello di regressione lineare che utilizza le componenti principali PC1,PC2,PC3,PC4,PC5 come variabili di input (x1,x2,x3,...). E la variabile obiettivo Y è già inserita nel modello lineare come risultato desiderato. Il problema è che resNipals è un oggetto di classe "pcaRes" del pacchetto pcaMethods. Non sono riuscito a trovare nell'aiuto come fare tutto questo.
Se fosse un modello PCA del pacchetto caret, andrebbe così:
Ma non funziona con resNipals, in teoria il pacchetto pcaMethods dovrebbe avere delle funzioni proprie per lavorare con questo oggetto, ma non ho trovato nulla.
Originariamente, la PCA è stata progettata per risolvere due problemi:
1. c'è un numero molto grande di predittori con un piccolo numero di osservazioni. Questo è comune nella chimica organica, nella genetica... Da noi è l'uso di dati macroeconomici su grandi TF, per esempio annuali.
2. Ci sono correlazioni tra i predittori.
Pertanto, gli algoritmi PCA risolvono questi due problemi principali:
1. Ridurre il numero di predittori originali con un nuovo numero di predittori, spesso radicalmente più piccolo. Così facendo, l'algoritmo assicura che questo piccolo numero possa spiegare una certa percentuale della variabilità dell'insieme originale di predittori, per esempio il 95%. Questo valore è scelto dal ricercatore.
2. Il nuovo set di predittori ha ZERO correlazione tra loro.
Ne consegue che, per noi, la PCA èuno degli algoritmi per preparare i dati grezzi per la modellizzazione, ma non può sostituire la modellizzazione per prevedere la variabile obiettivo.
Mi sembra che tra le discussioni sui vari dettagli della PCA si sia perso il senso delle mie osservazioni su questo punto. Quindi lasciate che vi ricordi: ho dato un riferimento all'uso della PCA in un modo che non solo riduce il numero di predittori originali, ma elimina anche i predittori che sono rumore per la variabile obiettivo. Che è ciò di cui si discute in questo thread.
Quindi propongo di tornare al problema del rumore tra i predittori, e al possibile uso di un'idea molto specifica di applicazione della PCA per risolvere questo problema.
Questo creerà l'oggetto resNipals (Nonlinear Estimation by Iterative Partial Least Squares) con 5 componenti principali per l'analisi della tabella metaboliteDataComplete. Invece di metaboliteDataComplete, potete sostituire la vostra tabella ...........
Quella che hai provato è la Nipals, è mostrata nella seconda foto sul sito, non è neanche molto separabile, dovresti prendere quella della terza foto rete neurale PCA
=========================
un po' fuori tema ma ho bisogno di aiuto con il codice....
Ho dei predittori in colonne, voglio contare la differenza di tutti i predittori con tutte quelle combinazioni, l'ho implementato, il problema è che ora ho bisogno di nominare adeguatamente ogni combinazione per capire cosa è cosa
Diciamo che abbiamo colonne con predittori "A" , "Б" , "С"
Faccio combinazioni di differenze
1) A - B
2) A - C
3) C - B
domanda: come faccio a dare alle nuove colonne dei nomi come "a_minus_b" , "a_minus_c"
Sto padroneggiando R e la programmazione in generale, quindi non ho familiarità con questi trucchi
Cosa devo aggiungere a questo codice?
Quella che hai provato è la Nipals, è mostrata nella seconda foto sul sito, non è nemmeno molto separabile, dovresti prendere quella nella terza foto rete neurale PCA
=========================
un po' fuori tema ma ho bisogno di aiuto con il codice....
Ho dei predittori in colonne, voglio contare la differenza di tutti i predittori con tutte quelle combinazioni, l'ho implementato, il problema è che ora ho bisogno di nominare adeguatamente ogni combinazione per capire cosa è cosa
Diciamo che abbiamo colonne con predittori "A" , "Б" , "С"
Faccio combinazioni di differenze
1) A - B
2) A - C
3) C - B
domanda: come faccio a dare alle nuove colonne dei nomi come "a_minus_b" , "a_minus_c"
Sto padroneggiando R e la programmazione in generale, quindi non ho familiarità con questi trucchi
Cosa devo aggiungere a questo codice?
Sembra così.
colnames() <- c(".", ".")
Ci sono anche i nomi
Vedere l'aiuto.
La PCA è stata originariamente progettata per risolvere due problemi:
All'incirca così.
colnames() <- c(".", ".")
Ci sono anche dei nomi
Vedi riferimento.
Dr.Trader:
...
I dati sono presi da eurusd d1, classe 0 o 1 - caduta o aumento del prezzo per la prossima barra. Se il modello predice correttamente il risultato per test.csv almeno in 6 casi su 10, allora si può provare a fare trading con esso nel Forex, in linea di principio, non perderà, ma non aspettatevi troppo profitto. Se predice correttamente in 7 casi su 10 (e più in alto) - questa è la strada giusta per il graal, dobbiamo provare l'allenamento e testare il modello su altri anni e mesi, e se tutto sarà lo stesso - allora molto bene.
...
Più specificamente nel file di report:
/**
* La qualità della modellazione in fuori campione:
*
* TruePositives: 182
* TrueNegatives: 181
* FalsePositive: 1
* FalsiNegativi: 1
* Totale dei modelli su campioni con statistiche: 365
* Errori totali nel fuori campione: 2
* Sensibilità della capacità di generalizzazione: 99.4535519125683%.
* Specificità della capacità di generalizzazione: 99.45054945054946%
* Capacità di generalizzazione: 98.90410136311776%
* Indicatore di Reshetov: 8.852456238401455
*/
È il momento di costruire una squadra e creare un progetto Open Source - sistema automatizzato per questo scopo su mql5 e Java. Mostrerò il codice sorgente del classificatore binario in Java e lo script MQL5, che crea un campione per la formazione dei modelli.
Piano approssimativo di come funzionerà il complesso:
Se sei interessato ad unirti al progetto e sai programmare in Java o MQL5, iscriviti a questo thread.
Ciao, hai usato la funzione sbagliata, avresti dovuto usare"nlPca" come indicato nel sito che ho dato, ma è colpa mia, hai bisogno di più dettagli...
Qui invece di prevedere - montato, prova, forse ci riuscirai
Questo esempio viene da un altro thread purtroppo. Per esempio in Forex possiamo sempre ottenere il 100% dei dati, ma in altri campi dove i dati sono acquisiti sperimentalmente ci saranno sempre valori mancanti. In questo esempio la PCA è usata per ricostruire i valori mancanti nei predittori stessi. Nell'esempio si cancella a caso il valore in una delle tre colonne, si crea un modello pca e lo si usa per ricostruire i valori mancanti.
Non ho mai provato questo, ma tecnicamente si potrebbe anche trattare la variabile target come un predittore includendola nel modello pca. Poi, nei nuovi dati il suo valore sarà sconosciuto, quindi pca può riempire quei valori mancanti.
La PCA era originariamente intesa a ridurre la dimensionalità della serie originale. Questo è tutto. Usarlo per selezionare i predittori non ha senso.
No, va bene. Poiché i predittori utilizzati per ciascuna delle componenti principali sono noti, possiamo tranquillamente escludere i predittori che non sono utilizzati nelle componenti principali. Leggi questo, mi è piaciuto: http://www.win-vector.com/blog/2016/05/pcr_part2_yaware/ Contiene 5 buoni predittori e decine di predittori di rumore. Setacciano il rumore con l'aiuto dell'analisi. Ho usato lo stesso codice per altri esempi incontrati in questo thread, generalmente funziona. Ma il forex è più complicato, non ho immagini così belle con gli indicatori, dovrei pensare a qualcosa di più intelligente.
Questo esempio è purtroppo di un altro argomento. In Forex per esempio possiamo sempre recuperare il 100% dei dati, ma in altri campi dove i dati sono ottenuti sperimentalmente ci saranno sempre dei vuoti, dei valori mancanti. In questo esempio la PCA è usata per ricostruire i valori mancanti nei predittori stessi. Nell'esempio si cancella a caso un valore in una delle tre colonne, si crea un modello pca e lo si usa per ricostruire i valori mancanti.
Non ho mai provato questo, ma tecnicamente si potrebbe anche trattare la variabile target come un predittore includendola nel modello pca. Poi, nei nuovi dati il suo valore sarà sconosciuto, quindi pca può riempire i valori mancanti.