Riqualificazione - pagina 4

 
Aliaksandr Hryshyn:
Chi usa quali tecniche per ridurre al minimo la riqualificazione del modello/consigliere?
Dobbiamo procedere dal fatto che, in questo caso, non possiamo fare a meno dell'analisi dei dati storici, e il concetto di "adattamento alla storia" deve essere completamente eliminato. Ciò che dovrebbe essere primario è l'idea stessa della ST, su cosa si basa. Ogni TS si basa sulle letture di uno o più indicatori. Questi ultimi hanno un parametro come il volume di campionamento N, che raggiunge il suo verdetto dopo aver analizzato l'intero volume di campionamento. È naturale supporre che nessun indicatore possa gestire ugualmente bene tutti i dati storici. Pertanto, parametri come SL e TP vengono in soccorso. Ecco 3 parametri di base che devono essere ottimizzati. È necessario trovare i loro valori in modo che il TS possa passare l'intera gamma di dati storici sul TF selezionato. Avendo ottenuto il grafico di accumulazione per tutto il periodo, dobbiamo analizzare e accettare il fatto che, nelle sezioni peggiori, l'idea originale dietro il TS non funziona, a causa delle molteplici facce del mercato. Cercare di cercare e dividere l'intera trama in "cattivo" e "buono", così come in "formazione" e "avanti" è una perdita di tempo. La ST deve essere valutata su tutto il materiale storico disponibile.
 
Youri Tarshecki:

Allora ditemi, come fate a decidere se un attaccante è sovrallenato o sottoallenato. Il sovrallenamento si degrada in modo diverso dal sottoallenamento?

L'unico modo per determinare la qualità delle condizioni di allenamento è vedere la qualità corrispondente del test fuori campione. E solo confrontando i risultati si può dire se l'ottimizzazione è sovra-ottimizzata o sotto-ottimizzata. Ma non vedo da nessuna parte nessun argomento che tratti della sotto-ottimizzazione. Per qualche ragione tutti vedono la radice del problema nella mitica sovraottimizzazione invece che nella qualità del codice.

La degradazione in avanti valuta la generalizzabilità di un sistema (cioè la stabilità, l'idoneità per dati sconosciuti). Quando (la capacità) è bassa, allora dal punto di vista pratico non fa differenza se ci alleniamo troppo o troppo poco - in ogni caso ci butteremo fuori. Ma se l'Expert Advisor è addestrato classicamente - utilizzando il set di parametri e il tester MT - allora non possiamo essere sotto addestrati (da un punto di vista tecnico). E se l'apprendimento avviene con un algoritmo proprio, possiamo usare metodi ben noti (per esempio, l'arresto precoce) per trovare il punto ottimale quando "l'errore è minimo" (il miglior risultato in OOS): in questo punto la sottoottimizzazione è finita, mentre la sovraottimizzazione non ha ancora avuto luogo. Sfortunatamente, il tester standard non fornisce tale funzionalità automatica per confrontare le prestazioni del sistema nel periodo di ottimizzazione e OOS. L'OOS in MT è il test in avanti. Quindi quanto evidenziato in grassetto è in realtà lo stesso che dico io. Il topic-starter ha posto una domanda sulla riqualificazione, quindi le risposte qui riguardano quella. Per quanto riguarda il sottoapprendimento, se con questo intendiamo non il grado di ottimizzazione ma piuttosto l'astratta "qualità del codice" che sembra includere la scelta dei predittori, i metodi di preparazione dei dati di input, la profondità del campione di allenamento e altre meta-conoscenze, allora il sottoapprendimento è definito molto semplicemente - dall'assenza di risultati positivi di ottimizzazione.

 

Non sono d'accordo sul sottoallenamento - tecnicamente non è difficile da fare. Cioè il fatto stesso della degradazione non dice se è sovrallenato o sottoallenato.

Se l'autore si toglie dalla mente il termine e capisce che l'optimum è qualcosa in Gauss, allora formulerà la domanda in modo leggermente diverso - come determinare la quantità e la densità ottimali di allenamento.

Allora possiamo essere più specifici.

Personalmente, lo definisco in base ai risultati del test.

 

Stanislav Korotky:
Термин этот не дурацкий, а давно устоявшийся и "одобренный лучшими собаководами"

Infatti, l'overfitting non è veramente overtraining, è overfitting.

 

Proviamo a guardare la questione da una prospettiva leggermente diversa.

Il modello/TS quando è addestrato (se ha tale possibilità) è in grado di ricordare alcune regolarità dai dati storici, inoltre, a causa della sua imperfezione, ricorda il "rumore". Considereremo il rumore come quello che il TS può "imparare" e non dare buoni risultati su nuovi dati, il rumore può essere diverso per altre strategie.

La domanda interessante è come possiamo, almeno parzialmente, limitare il TS/modello in modo che non possa "ricordare" il rumore? O come "pulire" i dati storici dal rumore, di nuovo, il rumore in relazione al TS.

Ecco un semplice esempio nell'immagine, supponiamo che le linee 1 e 2 siano lo stesso modello.

Ecco un altro esempio, nella zona tra le due linee verticali, il modello (linee rosse) è molto sbagliato.

 
Ma cosa sono queste foto? E gli assi? Il numero di ottimizzazioni?
 
Комбинатор:

Infatti, l'overfitting non è veramente overtraining, è overfitting.

Esattamente giusto. Fitting o overfitting è la stessa cosa di overfitting.
 
Youri Tarshecki:
Esattamente giusto. Il montaggio o il rimontaggio è lo stesso del cazzo
Se il fit o il re-fit viene effettuato sull'intera quantità di dati storici, migliora solo la qualità del TS.
 
Youri Tarshecki:
Comunque, di cosa parlano queste foto? Cosa sugli assi? Il numero di ottimizzazioni?
Non sono specifici del trading. Mostrano semplici esempi di come un modello (linee 1 e 2 nella prima immagine, e la linea rossa nella seconda) può essere "sbagliato" sui dati (piccoli quadrati e, sotto, punti).

Supponiamo che sull'asse orizzontale sarà il valore dell'indicatore, e sull'asse verticale, per i punti - come TS dovrebbe prevedere una certa proprietà del prezzo, utilizzando questo valore dell'indicatore, per essere in più. Per le linee - come il TS prevede. Sulla base di questa previsione, TS può fare trading. Questo è un esempio così condizionato. La proprietà prevista può essere la presenza di una tendenza o piatta, la volatilità, ecc.
 
Aliaksandr Hryshyn:
Non sono specifici del trading. Mostrano gli esempi più semplici di come un modello (linee 1 e 2 nella prima figura, e la linea rossa nella seconda) può "sbagliare" sui dati (piccoli quadrati e, sotto, punti).

Lasciate che l'asse orizzontale sia il valore dell'indicatore, e l'asse verticale, per i punti - come TS dovrebbe prevedere una certa proprietà di prezzo utilizzando questo valore dell'indicatore per essere redditizio. Per le linee - come il TS prevede. Sulla base di questa previsione, TS può fare trading. Questo è un esempio così condizionato. La proprietà prevista può essere la presenza di una tendenza o piatta, la volatilità, ecc.

Orizzontalmente, ci dovrebbe essere il numero di operazioni di ottimizzazione dei valori dell'indicatore o del gruppo di indicatori, provenienti dallo stesso momento della storia. E sulla linea verticale, il risultato del controllo di tutto il sistema. Poi possiamo parlare del sovrallenamento e del sottoallenamento e di cosa sono. E allora la curva sarà molto diversa. Sarà quasi una distribuzione normale con l'unica differenza che a un certo punto aggiungendo il numero di passaggi (o diminuendo il passo per il parametro indicatore) non darà nulla di nuovo.

Come si può regolare il numero di passaggi?

1. Cambiando semplicemente il numero di sessioni di allenamento, o cambiando la distanza (passo) dei parametri indicatori.

2. Cambiando la profondità della storia per la formazione in relazione al "passo" del controllo OOS. Allora la stessa parte della storia sarà ottimizzata un numero diverso di volte, anche se con un numero diverso di "vicini".

3. Cambiando un algoritmo di ottimizzazione genetica, se lo usiamo. Per esempio, cambiando il numero di generazioni, la casualità, ecc.

Ecco, forse, tutti gli strumenti disponibili per combattere PERE e NEDO.

Noterò anche che se ci concentriamo esattamente sul controllo e non sul risultato durante l'ottimizzazione (fitting), allora la natura della curva non dipenderà dal fatto che il sistema stesso non sia redditizio o meno. Cioè, se il sistema sta perdendo, semplicemente perderà ancora di più se sovrallenato, tutto qui. Il compito dell'addestramento è quello di trovare i parametri ottimali. E il compito della codifica è quello di trovare varianti praticabili, l'optimum di formazione non crea nulla di nuovo da solo.