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

 
Alexey Burnakov:

NS ha fatto molto bene.

Random Forest non potrebbe gestire un tale compito, dove l'interazione di un insieme di variabili. E la significatività individuale di ogni predittore era intenzionalmente zero.

Non vedo prove che NS abbia fatto bene qualcosa.

L'apprendimento eccessivo è un male mondiale nella scienza e nella costruzione di modelli in particolare.

Quindi un errore è necessario per tre serie:

  • set di apprendimento. Il modo in cui rattle lo intende (OOB, test, validazione) andrà bene.
  • un insieme che è al di fuori, in termini di date, dell'insieme di allenamento.
  • Un altro insieme che è al di fuori, nel senso delle date, dell'insieme di allenamento.

Gli ultimi due set non sono mescolati quando arrivano nel terminale, le basi dietro il bar.

Ci dovrebbe essere circa lo stesso errore su tutti e tre i set. Allo stesso tempo dovete fissare l'insieme dei predittori che prendete quando addestrate il modello.

 
Alexey Burnakov:


Random Forest non potrebbe gestire un tale problema, dove l'interazione di un insieme di variabili. E la significatività individuale di ogni predittore era intenzionalmente zero.

La tua idea di tenere conto dell'interazione tra predittori è una rivoluzione nella statistica. Fino ad ora, pensavo che l'interazione tra i predittori fosse un male. Non solo i predittori stessi sono di solito non stazionari, ma stiamo anche cercando di rendere conto delle relazioni tra questi processi casuali non stazionari.

Nell'apprendimento automatico, è considerato obbligatorio sbarazzarsi delle variabili interagenti. Inoltre sono disponibili algoritmi molto efficaci, ad esempio il metodo delle componenti principali che permette di sbarazzarsi dell'interazione e di convertire l'insieme di predittori interagenti in un insieme di predittori indipendenti.

 
SanSanych Fomenko:

Non vedo alcuna prova che NS abbia affrontato qualcosa.

L'apprendimento eccessivo è un male mondiale nella scienza e nella costruzione di modelli in particolare.

Quindi un errore è necessario per tre serie:

  • set di apprendimento. Il modo in cui rattle lo intende (OOB, test, validazione) andrà bene.
  • un insieme che è al di fuori, in termini di date, dell'insieme di allenamento.
  • Un altro insieme che è al di fuori, nel senso delle date, dell'insieme di allenamento.

Gli ultimi due set non sono mescolati quando arrivano nel terminale, le basi dietro il bar.

Ci dovrebbe essere circa lo stesso errore su tutti e tre i set. Detto questo, dovrete fissare il set di predittori che prendete quando addestrate il modello.

Mettiamola così. Nonostante il fatto che questo non faccia parte del compito. Stenderò un campione di convalida su cui eseguire il modello addestrato e misurare l'accuratezza di previsione dell'output.

Ma di nuovo, questo non è necessario. Notate che ho scritto di nuovo la convalida sulla base del modello dedotto.

File:
 

Un modello incorporato nei dati:

Количество по полю input_19 output
input_1 input_3 input_5 input_7 input_9 input_11 0 1 сумма предикторов четность
1 1 1 1 1 1 143 6 ИСТИНА
1 1 1 1 1 2 100 7 ЛОЖЬ
1 1 1 1 2 1 121 7 ЛОЖЬ
1 1 1 1 2 2 119 8 ИСТИНА
1 1 1 2 1 1 114 7 ЛОЖЬ
1 1 1 2 1 2 124 8 ИСТИНА
1 1 1 2 2 1 105 8 ИСТИНА
1 1 1 2 2 2 102 9 ЛОЖЬ
1 1 2 1 1 1 101 7 ЛОЖЬ
1 1 2 1 1 2 131 8 ИСТИНА
1 1 2 1 2 1 122 8 ИСТИНА
1 1 2 1 2 2 114 9 ЛОЖЬ
1 1 2 2 1 1 111 8 ИСТИНА
1 1 2 2 1 2 98 9 ЛОЖЬ
1 1 2 2 2 1 123 9 ЛОЖЬ
1 1 2 2 2 2 112 10 ИСТИНА
1 2 1 1 1 1 128 7 ЛОЖЬ
1 2 1 1 1 2 114 8 ИСТИНА
1 2 1 1 2 1 111 8 ИСТИНА
1 2 1 1 2 2 126 9 ЛОЖЬ
1 2 1 2 1 1 143 8 ИСТИНА
1 2 1 2 1 2 95 9 ЛОЖЬ
1 2 1 2 2 1 108 9 ЛОЖЬ
1 2 1 2 2 2 117 10 ИСТИНА
1 2 2 1 1 1 112 8 ИСТИНА
1 2 2 1 1 2 132 9 ЛОЖЬ
1 2 2 1 2 1 92 9 ЛОЖЬ
1 2 2 1 2 2 134 10 ИСТИНА
1 2 2 2 1 1 110 9 ЛОЖЬ
1 2 2 2 1 2 114 10 ИСТИНА
1 2 2 2 2 1 120 10 ИСТИНА
1 2 2 2 2 2 108 11 ЛОЖЬ
2 1 1 1 1 1 109 7 ЛОЖЬ
2 1 1 1 1 2 133 8 ИСТИНА
2 1 1 1 2 1 99 8 ИСТИНА
2 1 1 1 2 2 115 9 ЛОЖЬ
2 1 1 2 1 1 123 8 ИСТИНА
2 1 1 2 1 2 116 9 ЛОЖЬ
2 1 1 2 2 1 131 9 ЛОЖЬ
2 1 1 2 2 2 119 10 ИСТИНА
2 1 2 1 1 1 96 8 ИСТИНА
2 1 2 1 1 2 120 9 ЛОЖЬ
2 1 2 1 2 1 111 9 ЛОЖЬ
2 1 2 1 2 2 99 10 ИСТИНА
2 1 2 2 1 1 132 9 ЛОЖЬ
2 1 2 2 1 2 110 10 ИСТИНА
2 1 2 2 2 1 93 10 ИСТИНА
2 1 2 2 2 2 106 11 ЛОЖЬ
2 2 1 1 1 1 100 8 ИСТИНА
2 2 1 1 1 2 127 9 ЛОЖЬ
2 2 1 1 2 1 127 9 ЛОЖЬ
2 2 1 1 2 2 101 10 ИСТИНА
2 2 1 2 1 1 119 9 ЛОЖЬ
2 2 1 2 1 2 120 10 ИСТИНА
2 2 1 2 2 1 99 10 ИСТИНА
2 2 1 2 2 2 106 11 ЛОЖЬ
2 2 2 1 1 1 133 9 ЛОЖЬ
2 2 2 1 1 2 97 10 ИСТИНА
2 2 2 1 2 1 100 10 ИСТИНА
2 2 2 1 2 2 116 11 ЛОЖЬ
2 2 2 2 1 1 119 10 ИСТИНА
2 2 2 2 1 2 118 11 ЛОЖЬ
2 2 2 2 2 1 102 11 ЛОЖЬ
2 2 2 2 2 2 128 12 ИСТИНА
 
SanSanych Fomenko:

Non vedo alcuna prova che NS abbia affrontato qualcosa.

Neuronka ha risolto questo problema, atachment log con codice da Rattle. Ci sono un paio di cambiamenti nel codice quando si chiama neurone - ho aumentato il numero massimo di iterazioni, e rimosso le connessioni che vanno direttamente dall'input all'output, bypassando lo strato intermedio (skip=TRUE). Perché queste due limitazioni rovinano tutto.

Ho fatto la convalida sul nuovo file, gli errori in entrambi i casi sono quasi 0% (c'è solo un errore quando si convalida dal secondo file).

Ma poiché la NS è come una scatola nera, non c'è modo di conoscere la logica della soluzione. Puoi guardare i pesi, determinare il valore assoluto medio per ogni ingresso e disegnare un diagramma. E si saprà che 1, 3, 5, 7, 9, 11 sono più importanti del resto. Tuttavia, anche i restanti ingressi sono utilizzati per qualche motivo; i pesi zero non si trovano da nessuna parte. In altre parole, si scopre che l'apprendimento avviene all'inizio, e poi possiamo determinare gli input importanti.

 
Dr.Trader:

Neuronka ha risolto questo problema, atachment log con codice da Rattle. Ci sono un paio di cambiamenti nel codice quando si chiama neurone - ho aumentato il numero massimo di iterazioni, e rimosso le connessioni che vanno direttamente dall'input all'output, bypassando lo strato intermedio (skip=TRUE). Perché queste due limitazioni rovinano tutto.

Ho fatto la convalida sul nuovo file, gli errori in entrambi i casi sono quasi 0% (c'è solo un errore quando si convalida dal secondo file).

Ma poiché il NS è come una scatola nera, non c'è modo di conoscere la logica della soluzione. Puoi guardare i pesi, determinare il valore assoluto medio per ogni ingresso e disegnare un diagramma. E si saprà che 1, 3, 5, 7, 9, 11 sono più importanti del resto. Tuttavia, anche i restanti ingressi sono utilizzati per qualche motivo; i pesi zero non si trovano da nessuna parte. In altre parole, è il contrario: prima si impara e poi si identificano gli input importanti.

È vero. Il resto degli ingressi è rumore. Questo è lo svantaggio di molti metodi - le variabili di rumore non sono completamente rimosse.

Forse è necessario insegnare più a lungo e a piccoli passi.

Ma nel complesso, bravo. NS ha risolto un problema difficile.
 
SanSanych Fomenko:

Non vedo alcuna prova che NS abbia affrontato qualcosa.

L'apprendimento eccessivo è un male mondiale nella scienza e nella costruzione di modelli in particolare.

Quindi un errore è necessario per tre serie:

  • set di apprendimento. Il modo in cui rattle lo intende (OOB, test, validazione) andrà bene.
  • un insieme che è al di fuori, in termini di date, dell'insieme di allenamento.
  • Un altro insieme che è al di fuori, nel senso delle date, dell'insieme di allenamento.

Gli ultimi due set non sono mescolati quando arrivano nel terminale, basi dietro il bar.

Ci dovrebbe essere circa lo stesso errore su tutti e tre i set. Così facendo dovrete fissare l'insieme dei predittori che prendete quando addestrate il modello.

L'ovvio ha bisogno di essere dimostrato? Durante l'addestramento i pesi degli ingressi che portano dati contraddittori sono diminuiti, quindi possiamo dire che i dati contraddittori in arrivo sono bloccati.

Non c'è alcun problema di riqualificazione in questo caso, perché la rete addestrata non viene utilizzata per altri scopi.

La domanda è se un tale metodo è utile. Non è un po' di artiglieria pesante.

 
Dmitry Fedoseev:

Se un tale metodo sia appropriato è la questione. L'artiglieria non è un po' pesante?

Puoi provare un altro metodo. Ma penso che il rimedio sia adatto al problema.
 
Alexey Burnakov:
Puoi provare in un altro modo. Ma penso che il rimedio sia adatto al problema.
Fa il lavoro e lo fa bene. Ma mi chiedo sempre se non ci sia qualcosa di più efficace e più semplice.
 
Dmitry Fedoseev:
Fa il lavoro e lo fa bene. Ma mi chiedo sempre se non ci sia qualcosa di più efficace e più semplice.
Finché non lo provi, non lo capirai. Le solite inclusioni ed eccezioni non funzionano. Cos'altro c'è?
Motivazione: