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
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.
Infatti, l'overfitting non è veramente overtraining, è overfitting.
Esattamente giusto. Il montaggio o il rimontaggio è lo stesso del cazzo
Comunque, di cosa parlano queste foto? Cosa sugli assi? Il numero di ottimizzazioni?
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.