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

 
Yuriy Asaulenko:

Come si leggono i libri? Le metti sotto il culo?

Molto popolare. Un problema o ha una soluzione o non ce l'ha. Se non lo fa, non si può risolvere. Se c'è, non sarete in grado di risolverlo. E NS non ha niente a che fare con questo.

Quindi leggete il libro suggerito sopra. C'è sempre una soluzione ottimale in una quantità di uno, quanto sia soddisfacente è una seconda questione.

 

Come promesso, riporto i risultati del test di diversi indicatori per la selezione di un modello di classificazione binaria. Il test include 17 indicatori: Logloss; BalancedErrorRate; LogLikelihoodOfPrediction; WKappa; Kappa; BrierScore; ZeroOneLoss; Accuracy; BalancedAccuracy; MCC; Precision; Recall; F1; AUC; HingeLoss; HammingLoss; CrossEntropy, il default è Logloss. La metodologia è semplice, eseguire CatBoost con le stesse impostazioni sugli stessi campioni per la formazione, il test e il controllo finale, i valori numerici sono presi dal file per il controllo finale, che non partecipa alla formazione. Per ogni indicatore si formano 8 alberi di diverse dimensioni da 1 a 8, il che media anche la capacità di selezionare buoni valori dall'insieme, ed è stato utilizzato anche per determinare il significato del ridimensionamento degli alberi. Sono stati utilizzati quattro obiettivi di formazione, le strategie differiscono maggiormente in base all'obiettivo del movimento di tendenza. I risultati di ogni indicatore sono stati riassunti nella seguente tabella:



Si è scoperto che alcuni degli indicatori sono completamente coerenti tra loro e sono stati assemblati in gruppi - l'identificatore del gruppo di indicatori è mostrato in verde


Di seguito è riportata una tabella riassuntiva per ogni indicatore, dove i valori massimi e minimi dell'indicatore sono evidenziati e i valori di picco nell'intero campione sono colorati.

Una tabella riassuntiva del profitto medio di ogni indicatore è presentata in seguito, come variante dell'identificazione di un indicatore universale per tutte le varianti dell'obiettivo - l'importo medio massimo.



Come ho scritto prima, stavo testando la mia formula su questi dati in parallelo per selezionare il miglior indicatore tra i dati ottenuti - "%All*1%", i risultati sono stati combinati in una tabella per ogni indicatore partecipante al test.

Tale approccio ha permesso una classifica basata sulla somma dei punteggi dei fattori di selezione per ogni indicatore, come mostrato nella tabella sottostante.

È interessante notare che il favorito nella prima classifica, Precision, era in fondo, suggerendo che non è versatile, ma piuttosto che le sue prestazioni erano molto buone per il primo obiettivo.

È anche possibile considerare quali opzioni questo fattore ha selezionato dalla tabella di ogni indicatore e guardare la classifica sulla somma di questi indicatori.

Per riassumere, è possibile aggregare i risultati in una tabella riassuntiva e sommare i punteggi dei posti - chi ha meno quella metrica può essere migliore.

Possiamo concludere che Logloss è piuttosto una media piuttosto che la migliore metrica per la selezione dei modelli, allo stesso tempo TS diversi possono richiedere metodi diversi di selezione dei modelli addestrati. Così, per esempio, per un campione più equilibrato per target (columns_100) Precision è perfetto, ma per un campione sbilanciato, dove per esempio il 20% (columns_200) e meno del target "1", le cose vanno male e qui è ragionevole usare HingeLoss che ha affrontato perfettamente questo compito. Il più equilibrato, forse, era l'indicatore Recall - può essere usato per sondare il terreno, credo. Tale indicatore come Accuracy si è rivelato estremamente inaffidabile e sbilanciato, da un lato è stato in grado di trovare l'opzione migliore con l'obiettivo più bilanciato, ma d'altra parte la media di tutte le opzioni dell'albero non ha cullato bene, di conseguenza non è molto adatto per trovare campioni sbilanciati o per il tuning del modello.

 
Alexander_K2:


La tendenza è facilmente e delicatamente buttata nel cesso con una chiave ambita che ho trovato letteralmente "in ginocchio".


Mi chiedo cosa sia venuto fuori.

 
Aleksey Vyazmikin:

Ottimi test, grazie

C'è qualche informazione sul differenziale degli errori del traine\test? Basta prendere uno qualsiasi Accuracy o logloss lì, i più popolari

per esempio qualcosa come questo

2018.11.27 02:26:37.780 Core 2  2018.11.23 23:59:59   RlMonteCarlo TRAIN LOSS
2018.11.27 02:26:37.780 Core 2  2018.11.23 23:59:59   0.19023
2018.11.27 02:26:37.780 Core 2  2018.11.23 23:59:59   RlMonteCarlo TEST LOSS
2018.11.27 02:26:37.780 Core 2  2018.11.23 23:59:59   0.43959

test della traccia destra sinistra:

Mi interessa la capacità del modello di generalizzare, e quali sono le prodezze per affrontare gli overfits. Vedo che hai imparato rapidamente lo strumento. Finalmente, conversazioni sostanziali :))

 
Maxim Dmitrievsky:

Ottimi test, grazie.

c'è qualche informazione sul differenziale di errori traine\test? basta prendere uno Accuracy o logloss lì, i più comuni

per esempio qualcosa come questo

test della traccia destra sinistra:

Mi interessa la capacità del modello di generalizzare, e quali sono le imprese per combattere gli overfits. Vedo che hai imparato rapidamente lo strumento. Finalmente, discorsi sostanziali :))

Catbust usa tre campioni - uno è un campione di prova usato per l'addestramento, il secondo per testare l'addestramento di ogni modello e selezionare il modello migliore, che è stato ottenuto nel processo di addestramento e ha dimostrato di essere stabile sui dati di prova, e il terzo è un campione d'esame, che viene segnato dopo la fine dell'addestramento dal modello selezionato. Poiché può effettivamente imparare molto bene sul campione di allenamento, non ha senso confrontare i risultati sul campione di prova con il campione di allenamento, ma il test con il campione d'esame sì. Ma dato che ho gestito tutto questo a mano in Excel, non ero abbastanza forte per controllare anche i risultati del campione di prova. Tali dati sono ovviamente necessari per valutare il modello, e dovrebbero essere presi in considerazione e analizzati, ma il processo non è ancora automatizzato (ho appena iniziato a scrivere uno script per preparare il set-up per l'elaborazione - lontano dall'analisi) e non posso parlare di alcuna cifra.

Non ho notato nessun metodo speciale per combattere il sovrallenamento, eccetto i metodi per fermare l'allenamento in caso di letture extra buone... L'algoritmo stesso ha una certa casualità che può essere disattivata - permette anche di scegliere non i migliori predittori per ramificare l'albero, il che dovrebbe aiutare a prevenire l'apprendimento eccessivo.

Ora voglio alimentare i predittori in porzioni e vedere cosa succede, perché il modello ha comunque il principio dell'albero avido e questo a volte gli impedisce di ottenere risultati migliori.

 
Aleksey Vyazmikin:

Catbust utilizza tre campioni - uno è il test, su cui impara, il secondo è per testare l'apprendimento di ogni modello e selezionare il modello migliore, che è stato ottenuto nel processo di apprendimento e ha dimostrato di essere stabile sui dati di test, e il terzo è il campione di prova, che è caratterizzato dal fatto che il modello selezionato è stato addestrato. Poiché può effettivamente imparare molto bene sul campione di allenamento, non ha senso confrontare i risultati sul campione di prova con il campione di allenamento, ma il test con il campione d'esame sì. Ma dato che ho gestito tutto questo a mano in Excel, non ero abbastanza forte per controllare anche i risultati del campione di prova. Tali dati sono ovviamente necessari per valutare il modello, e dovrebbero essere presi in considerazione e analizzati, ma il processo non è ancora automatizzato (ho appena iniziato a scrivere uno script per preparare il set-up per l'elaborazione - lontano dall'analisi) e non posso parlare di alcuna cifra.

Non ho notato nessun metodo speciale per combattere il sovrallenamento, eccetto i metodi per fermare l'allenamento in caso di letture extra buone... L'algoritmo stesso ha una certa casualità che può essere disattivata - permette anche di scegliere non i migliori predittori per ramificare l'albero, il che dovrebbe aiutare a prevenire l'apprendimento eccessivo.

Ora voglio inserire porzioni di predittori e vedere cosa succede, poiché il modello ha ancora un principio di costruzione dell'albero avido e questo a volte gli impedisce di ottenere risultati migliori.

Sì, è proprio questo che è esasperante, le eterne integrazioni che richiedono più tempo dello sviluppo di TC. Mi piacerebbe anche lavorare su python, ma non ho ancora tempo.

 
Maxim Dmitrievsky:

È questo che è così fastidioso, le eterne integrazioni che richiedono più tempo dello sviluppo di TC. Mi piacerebbe fare anche un po' di python, ma non ho ancora il tempo.

Voglio usarlo con MT5 perché non sto lavorando con python, mi piace che ketbust abbia la versione console.

 
Aleksey Vyazmikin:

Non sono con python, mi è piaciuto che ketbust ha la versione console, voglio fare questa versione compatibile con MT5.

Puoi usare quelli della console ma sono scomodi da usare

 
Maxim Dmitrievsky:

quasi tutti hanno quelli della console, sono scomodi per lavorare

Non lo sapevo, chi altro li ha?

Perché non conveniente - ci sarà uno script in MT5, dove è possibile implementare le impostazioni e l'enumerazione dei parametri - molto meglio che con puro codice Python o R.

Catbust è in grado di lavorare con le fattorie grafiche, anche questo ha attirato la mia attenzione.

 
Aleksey Vyazmikin:

Non lo sapevo, chi altro ce l'ha esattamente?

Perché non conveniente - ci sarà uno script su MT5, dove è possibile implementare le impostazioni e l'enumerazione dei parametri - in ogni caso meglio che con puro codice Python o R.

Catbust sa come lavorare con le fattorie grpf, il che ha anche attirato la mia attenzione.

tutte le librerie hanno la mbo, questa è solo la libs sui pro.

non è comodo e richiede tempo con MO in linguaggi di basso livello, specialmente la ricerca