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

 
mytarmailS:

Alexei, dovresti imparare python o p-cu, provare a costruire qualcosa lì... credetemi, mille domande sarebbero sparite...

Che bel desiderio, e sarebbe utile imparare un paio di lingue straniere, e padroneggiare tutte le altre competenze, che non dipenderebbero da altre persone. Tuttavia, non ho talento in tutto, e mi rendo conto che non otterrò alti risultati nella codifica, e si spenderà troppo sforzo.

mytarmailS:

Che senso ha controllare l'efficienza dei metodi di selezione dei tratti se sono già testati e funzionanti?

La domanda qui era più sull'efficacia del metodo, cioè di quanto può alla fine migliorare il risultato rispetto all'alimentazione del campione senza escludere i predittori. Cioè l'esperimento vero e proprio.


mytarmailS:

Il problema non è nel rifiuto dei tratti, è nei tratti stessi, se si alimentano 10 indicatori, poi si seleziona fino al blu in faccia e si ottiene lo stesso risultato da QUALSIASI algoritmo di selezione...

Ho circa 5 predittori al momento, ecco perché questo approccio è interessante.

mytarmailS:

Avete sentito nel video? Stanno selezionando tra decine di migliaia di caratteristiche, e menzionano anche MSUA dove parlano di creare ed enumerare miliardi di caratteristiche

Questo è ciò di cui dovremmo parlare - sistemi che generano milioni di idee e le controllano automaticamente, questa è l'essenza, sono decisioni individuali, e la selezione delle caratteristiche è la piccola parte finale del processo e non c'è niente di interessante in essa, basta prendere qualsiasi algoritmo e andare avanti, non c'è niente di cui parlare, semplicemente non è interessante.

Sto solo lavorando con un gran numero di caratteristiche, e sviluppando metodi per generarle da un modello. Il processo di binarizzazione delle caratteristiche, possibilmente mantenendo diversi indicatori all'interno del nuovo predittore, che farebbe 50000 caratteristiche su 5000, e devono essere studiate per le relazioni reciproche per creare nuove caratteristiche sature da cui il modello sarà già costruito.

Tutto sommato, non so perché una visione così primitiva della mia attività...

 
Aleksey Vyazm

Comunque, non so perché hai una visione così primitiva delle mie prestazioni...

Alexey, non capisci che tutti i tuoi 5k segni binari possono essere sostituiti da 2-3 componenti principali, cioè 2-3 segni e tutto)) ma bisogna farlo per sapere...

Inoltre non capisci che il tuo modello figo con 5k caratteristiche può essere solo una caratteristica tra centinaia di altre per un modello classificato più in alto, che a sua volta sarà una caratteristica per un modello ancora più classificato...

Queste sono le categorie in cui sto pensando attualmente.


Guarda Ivakhnenko MHUA, quanto sono elaborati e profondi i concetti, quando lo leggo mi sento come un bambino di prima elementare in MO...

 
mytarmailS:
Alexei, come puoi non capire che tutti i tuoi 5k attributi binari possono essere sostituiti da 2-3 -componenti principali, cioè 2-3 attributi e tutto)) ma devi farlo per sapere...

Da dove trae queste conclusioni sulla mia comprensione o meno? Il tema della MGUA non è stato toccato da me perché non c'è una vera esperienza della sua applicazione. Sei pronto a condensare i miei segni in 2-3? Sarei interessato a vederlo e a confrontarlo con il mio approccio. Dal momento che hai già tutto affinato su questo, non credo che sarebbe un problema, vero?

mytarmailS:
Inoltre, non capisci che tutto il tuo modello figo con 5k attributi può essere solo un attributo tra centinaia di altri per un modello di rango superiore, che a sua volta sarà un attributo per un modello ancora più alto...

Queste sono le categorie a cui sto pensando ora.

L'ho messo in pratica per molto tempo, estraendo le foglie dai modelli - sono un componente saturo per i modelli più globali.

Molto di ciò che ho inventato ha altri nomi ed è implementato per uso generale, ma quando si fa tutto da zero, c'è una comprensione di fondo di come e perché funziona, non solo teoria.

 
mytarmailS:
Leggere lo stesso Ivakhnenko MSUA, quanto sono elaborati e profondi i concetti, quando lo leggo mi sento come un bambino di prima elementare in MO...

Devo fare delle cose - ho già abbastanza pensieri da controllare, devo codificare e verificare.

 
mytarmailS:

Inoltre non ti rendi conto che tutto il tuo modello figo con 5k caratteristiche può essere solo una caratteristica tra centinaia di altre per un modello classificato più in alto, che a sua volta sarà una caratteristica per un modello classificato ancora più in alto...

Fan del film Matrix?

 

Ho pensato a come migliorare il metodo di selezione dei predittori/attributi/caratteristiche attraverso l'analisi del modello risultante.

Ho alcune idee per l'implementazione dell'algoritmo, ma ho deciso di condividerle con la comunità rispettata, forse ci saranno alcune critiche costruttive o aggiunte/rifinanziamenti all'algoritmo prima di iniziare a lavorare sull'implementazione di questo algoritmo. È interessante pensare che niente funzionerà con la giustificazione.


Selezione dei predittori per frequenza d'uso (Feature importance) durante la creazione di un modello CatBoost
.

L'idea è che ogni algoritmo ha le sue peculiarità di costruzione degli alberi e noi selezioneremo quei predittori che sono usati più spesso dall'algoritmo, in questo caso CatBoost.

Tuttavia, per stimare l'uniformità sulla scala temporale, useremo più campioni e aggregeremo i loro dati in un'unica tabella. Questo approccio setaccerà gli eventi casuali che hanno una forte influenza sulla scelta del predittore in uno dei modelli. Le regolarità su cui il modello è costruito dovrebbero verificarsi in tutto il campione, il che può facilitare una corretta classificazione sui nuovi dati. Questa caratteristica è applicabile ai dati del mercato, cioè ai dati senza completezza, compresa la ciclicità nascosta, cioè non temporale, ma basata sugli eventi. Nel fare ciò, è auspicabile penalizzare i predittori che non sono nel top 30%-50% in uno dei grafici, il che permetterà la selezione dei predittori che sono più frequentemente richiesti per i modelli su diversi orizzonti temporali.

Inoltre, per ridurre il fattore di casualità dovremmo usare modelli con diversi valori di Seed, penso che ci dovrebbero essere da 25 a 100 modelli di questo tipo. Se il coefficiente debba essere aggiunto a seconda della qualità del modello ottenuto o solo per fare la media di tutti i risultati per predittori - non lo so ancora, ma penso che dovremmo iniziare con quello semplice, cioè solo per fare la media.

La questione dell'uso di una tabella di quantizzazione è importante, può essere cruciale nella selezione dei predittori. Se la tabella non è fissa, allora ogni modello creerà la propria tabella per il sottocampione, rendendo impossibile confrontare i risultati, quindi la tabella deve essere comune a tutti i campioni.

È possibile ottenere una tabella di quantizzazione:

  1. Impostando iperparametri per CatBoost sul tipo e il numero di partizioni in quanti dell'intero campione di allenamento, e salvando i risultati in csv.
  2. Impostare gli iperparametri per CatBoost per tipo e numero di partizioni in quanti selezionando una delle aree campione, diciamo la migliore, e salvare i risultati in csv.
  3. Ottenere una tabella utilizzando uno script separato che seleziona le scelte migliori da un insieme di tabelle.
Le tabelle precedentemente ottenute sono utilizzate per ogni campione attraverso il caricamento forzato delle tabelle durante l'allenamento.
 
È possibile collegare i valori shap all'avvio e vedere l'interazione delle caratteristiche nell'output su qualsiasi dato, è per chi ama scavare nell'intimo, come Alexei :) Ci sono anche librerie simili, simili a Lime e indipendenti dal modello. Naturalmente, se si analizzano centinaia di segni senza senso, allora qualsiasi impresa del genere è condannata. È un lavoro semplice e nessuno lo farà per voi gratuitamente, perché è un incredibile ammazza-tempo con un risultato noto.
 
Maxim Dmitrievsky:
Puoi collegare i valori shap a bootstrap e vedere l'interazione delle caratteristiche nell'output su qualsiasi dato, è per chi ama scavare nell'intimo, come Alexey :)

La questione della metrica è aperta, ci sono diverse varianti - dovremmo provare, quale è migliore - impatto sul modello, numero di suddivisioni, numero di esempi corretti dopo la suddivisione - le metriche sono diverse. La questione è nella correttezza del loro uso per il compito da svolgere. A proposito, per quanto mi ricordi ivalori shap non potevano essere usati nelle prime build per la linea di comando, ma in questo modo si può fare uno script per la visualizzazione.

 
Maxim Dmitrievsky:
Naturalmente, se si analizzano centinaia di segni senza senso, allora ogni sforzo di questo tipo è condannato. È un lavoro semplice, ed è improbabile che qualcuno lo faccia per voi gratuitamente, perché è un incredibile ammazza-tempo con un risultato noto.

Perché il pessimismo - il punto è proprio quello di generare un insieme di attributi, in teoria adatti a qualsiasi obiettivo/strategia di base e selezionare il migliore di essi per un particolare obiettivo.

Dubitare dell'aumento della qualità della classificazione dopo la manipolazione?
 
Aleksey Vyazmikin:

Perché il pessimismo - il punto è proprio quello di generare un insieme di attributi, in teoria adatti a qualsiasi obiettivo/strategia di base e selezionare il migliore di essi per un particolare obiettivo.

Dubita del guadagno in qualità della classificazione dopo la manipolazione?
Non vedo il quadro completo del perché questo potrebbe funzionare.