L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 109

 
Sono d'accordo, il pensiero mi è venuto durante il fine settimana. Infatti, più spesso la rete dice "non lo so", più il momento si avvicina al sovrallenamento. All'inizio dell'OOS, quasi tutti i segnali sono interpretati senza ambiguità, ma col tempo la rete comincia sempre più a dire "non so", il che indica che stanno arrivando nuovi dati difficili da interpretare. Quando si raggiunge un certo livello di "non so", la rete viene ri-addestrata. Una cosa molto utile ....
 
Tutto il discorso sull'attenuazione graduale del modello sull'OOS e l'utilità di questa informazione nel commercio sembra poco convincente senza parlare della preselezione dei predittori.
 
SanSanych Fomenko:
Tutti i discorsi sulla graduale dissolvenza del modello su OOS e l'utilità di queste informazioni nel commercio sembrano poco convincenti senza parlare della preselezione dei predittori.
Quindi qual è la scelta? Scegliamo un modello con il massimo livello di generalizzazione, vediamo come si è comportato nell'intervallo di allenamento. Le euviti dovrebbero crescere uniformemente... E poi c'è la fortuna. Non c'è nessun posto senza di esso...
 
Andrey Dik:

Ato.

Se un modello dà segnali sbagliati su OOS è un'indicazione di un addestramento difettoso, non il fatto che il mercato è cambiato.

Sono d'accordo. Ma come si fa ad analizzare i segnali di due griglie? Non è abbastanza chiaro? Quanto divergono o sono all'unisono?
 
Alexey Burnakov:
Sono d'accordo con questo. Come si analizzano i segnali di due griglie? Non è abbastanza chiaro? Come divergono o sono all'unisono?

Portare i segnali a un modello comune come questo:

Interpretazione SELL BUY

-1 0 vendere

0 0 recinto

0 1 comprare

-1 1 recinto

In un modello ben addestrato i segnali si contraddicono raramente. Un numero uguale di segnali sull'area di formazione non è richiesto da loro, e di regola, sono diversi, e questo è comprensibile, perché il mercato può avere tendenze globali prolungate. Ma limito il numero di segnali di una griglia a non superare 2 volte il numero di segnali dell'altra. Non so rispondere al perché sia 2 volte, ma è un rapporto empirico. Per esempio, se la tendenza cambia da ascendente a discendente, la quantità di segnali di vendita aumenta e i segnali di acquisto iniziano a mentire, si verifica una contraddizione e la quantità di transazioni diminuisce - questo è un segno che è necessario un nuovo allenamento.

 
Andrey Dik:

Portare i segnali a un modello comune come questo:

Interpretazione SELL BUY

-1 0 vendere

0 0 recinto

0 1 comprare

-1 1 recinto

In un modello ben addestrato i segnali si contraddicono raramente. Un numero uguale di segnali sull'area di formazione non è richiesto da loro, e di regola, sono diversi, e questo è comprensibile, perché il mercato può avere tendenze globali prolungate. Ma limito il numero di segnali di una griglia a non superare 2 volte il numero di segnali dell'altra. Non so rispondere al perché sia 2 volte, ma è un rapporto empirico. Per esempio, se la tendenza cambia da ascendente a discendente, la quantità di segnali di vendita aumenta e i segnali di acquisto iniziano a mentire, si verifica una contraddizione e la quantità di transazioni diminuisce - questo è un segno che è necessario un nuovo allenamento.

Grazie. Questa può essere un'idea che funziona.
 
Combinatore:

Sì, ma non sulla configurazione neuronica.

Andrei sembra alludere ad alcuni input così potenti che qualsiasi modello si orienterà su di essi per dare risultati buoni e senza correzioni.

O forse si riferisce a qualcos'altro. Ma una risposta più dettagliata sarebbe apprezzata.

 

Rilasciato il nuovo rilascio di jPrediction 9.00

Citazione dal manuale utente:

"Differenze tra jPrediction e altri software di apprendimento automatico

La differenza principale di jPrediction è l'assenza di impostazioni definite dall'utente, che permette di sbarazzarsi del fattore umano sotto forma di errori umani, sia nel processo di impostazione e selezione degli algoritmi che nel processo di selezione delle architetture delle reti neurali. L'intero processo di apprendimento automatico in jPrediction è completamente automatizzato e non richiede alcuna conoscenza speciale da parte degli utenti o il loro intervento.

Funzioni eseguite da jPrediction in modalità automatica

  1. Lettura e analisi di un file con più esempi per costruire un modello di classificazione matematica;
  2. Normalizzare i dati prima dell'apprendimento automatico;
  3. Dividendo l'insieme di tutti gli esempi del campione in due sottoinsiemi: un sottoinsieme di allenamento e un sottoinsieme di test;
  4. Bilanciamento degli esempi del sottoinsieme di allenamento;
  5. Formazione dell'architettura della rete neurale;
  6. Addestrare una serie di modelli su un sottoinsieme di casi con diverse combinazioni di predittori (fattori);
  7. Riduzione dell'architettura delle reti neurali - rimozione degli elementi superflui;
  8. Test di un insieme di modelli su un sottoinsieme di esempi e calcolo delle capacità di generalizzazione;
  9. Selezione del miglior modello secondo il criterio della massima generalizzabilità.

Poiché dall'insieme dei modelli, ognuno dei quali differisce da qualsiasi altra combinazione di predittori, viene selezionato solo quello con la massima capacità di generalizzazione, la riduzione (selezione) dei predittori più significativi viene così effettuata automaticamente".

Va detto che a partire dalla versione 8, jPrediction non ha limitazioni sul numero massimo di predittori nel campione di allenamento. Prima della versione 8, il numero di predittori nel campione di allenamento era limitato a dieci.

Prima della versione 8, jPrediction era a modello singolo. Cioè, è stato preso un campione e solo un singolo modello è stato addestrato e testato su di esso.

Dalla versione 8, jPrediction è ora multi-modello, cioè allena e testa molti modelli diversi, su parti diverse del campione, e ogni parte contiene diverse combinazioni di predittori. Uno di questi modelli darebbe la massima generalizzabilità sulla parte di test del campione.

Il problema era che se si prendono diverse combinazioni di predittori, allora una ricerca completa di combinazioni risulta in una cosiddetta "esplosione" combinatoria (dal termine combinatoria), cioè con ogni predittore aggiuntivo è necessario addestrare e testare il doppio dei modelli che senza. È abbastanza ovvio che quando il numero di predittori nel campione è misurato in decine e persino centinaia, diventa problematico aspettare di finire l'addestramento e il test di tutti i modelli combinatori in un tempo ragionevole.

Il problema dell'"esplosione" combinatoria in jPrediction è stato risolto non provando tutte le combinazioni possibili, ma con il metodo di ricerca sequenziale. L'essenza del metodo è la seguente:

Supponiamo di aver trovato qualche combinazione contenente N predittori con la massima generalizzabilità provando tutte le possibili combinazioni di N e meno predittori. Abbiamo bisogno di aggiungervi N+1 predittori. Per questo aggiungiamo uno per uno tutti i predittori del campione che non erano inclusi nella combinazione e misuriamo la loro capacità di generalizzazione. Se nel processo di tale ricerca troviamo una combinazione con N+1 predittori la cui capacità di generalizzazione è superiore alla migliore combinazione di N predittori, possiamo trovare una combinazione con N+2 predittori nello stesso modo. E se non l'hanno trovato, allora è chiaro che non ha senso cercare oltre e l'algoritmo di provare le combinazioni si ferma alla migliore combinazione di N predittori. Come risultato, l'algoritmo di ricerca delle combinazioni di predittori per il modello si ferma molto prima rispetto al tentativo completo di tutte le combinazioni possibili. Un ulteriore risparmio di risorse computazionali è dovuto al fatto che la ricerca parte da un piccolo numero di predittori nella direzione di aumentare questo numero. E meno predittori sono necessari per l'addestramento, meno tempo e potenza di calcolo sono necessari per costruire i modelli.

Questo è il tipo di torta.

Se siete interessati, l'archivio ZIP allegato contiene il manuale utente di jPrediction 9 in russo in formato PDF:

 
Fico! Sei l'unico che si trascina tutto dentro? Il termine "riduzione" non è chiaro. Se guardate la tecnologia, è una riduzione multipla di qualcosa. E con te, è una selezione.
 
Yury Reshetov:

Nuovo rilascio di jPrediction 9.00


Tutto bene tranne una piccola cosa: non c'è confronto con altri modelli.

Offro i miei servizi per un confronto

1. Si prepara un file Excel di input contenente i predittori e la variabile target

2. Tu fai il calcolo

3. Mi mandi il file di input.

4. Faccio i calcoli usando randomforest, ada, SVM

Confrontiamo.