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

 
mytarmailS #:
Allora mostrami il tuo mestiere.
Perché tutti questi discorsi?

E vediamo come funziona il tuo TS secondo una teoria centenaria che funziona come un orologio...
Oh, andiamo.

Domande del genere fanno girare la testa a tutti.

È come a scuola.

Bisogna partire da lontano e fare domande semplici.

Su quale coppia fai trading?

E mostrare l'ultima operazione, l'entrata e l'uscita con tutti i parametri.

E poi, quante operazioni al giorno fai e in questo punto c'è una pausa.

P.Z.

Non si dovrebbero fare più di due domande.

Si possono offendere i maestri. E cosa succede se si inizia a farlo?

P.Z.

Io tifo per lo Spartak.

 
Forester #:

Stai fraintendendo la stufa. Sembra che non abbiate mai guardato il codice di costruzione dell'albero.... Non ci sono operazioni all'interno di una singola riga!!!, solo con gli insiemi (completi o in lotti).

In breve:
Un insieme casuale/pieno di righe passato all'addestramento, viene ordinato uno per uno per ogni predittore/colonna. Vengono controllate diverse suddivisioni (media/percentile/random), vengono contate le statistiche per ciascuna di esse e viene selezionata la migliore suddivisione per l'intero insieme di righe, non per una/ogni riga come suggerito.
In base alla migliore suddivisione, l'insieme di stringhe viene diviso in due insiemi, poi ogni insieme viene ordinato di nuovo e viene selezionata la migliore suddivisione per ciascuna delle parti, ecc. fino a quando non viene raggiunta la regola di arresto (per profondità, numero di esempi per riga, ecc.)

Potete vedere maggiori dettagli nell'editor, avete il file:
\MQL5\Include\Math\Alglib\dataanalysis.mqh
Funzione ClassifierSplit() e quella da cui viene chiamata.
Lo capirete in un paio d'ore e non dovrete parlare della ricerca dei predittori da una riga.
Qui sarà più chiaro, il codice è più conciso e ha commenti https://habr.com/ru/companies/vk/articles/438560/.

1. Classe RegressionTree()

Пишем XGBoost с нуля — часть 1: деревья решений
Пишем XGBoost с нуля — часть 1: деревья решений
  • 2019.02.06
  • habr.com
Привет, Хабр! После многочисленных поисков качественных руководств о решающих деревьях и ансамблевых алгоритмах (бустинг, решающий лес и пр.) с их непосредственной реализацией на языках программирования, и так ничего не найдя (кто найдёт — напишите в комментах, может, что-то новое почерпну), я решил сделать своё собственное руководство, каким...
 
Forester #:

Stai fraintendendo la stufa. Sembra che non abbiate mai guardato il codice di costruzione dell'albero.... Non ci sono operazioni all'interno di una singola riga!!!, solo con gli insiemi (completi o in lotti).

In breve:
Un insieme casuale/pieno di righe passato all'addestramento, viene ordinato uno per uno per ogni predittore/colonna. Vengono controllate diverse suddivisioni (media/percentile/random), vengono contate le statistiche per ciascuna di esse e viene selezionata la migliore suddivisione per l'intero insieme di righe, non per una/ogni riga come suggerito.
In base alla migliore suddivisione, l'insieme di stringhe viene diviso in due insiemi, poi ogni insieme viene ordinato di nuovo e viene selezionata la migliore suddivisione per ciascuna delle parti, ecc. fino a quando non viene raggiunta la regola di arresto (per profondità, numero di esempi per riga, ecc.)

Potete vedere maggiori dettagli nell'editor, avete il file:
\MQL5\Include\Math\Alglib\dataanalysis.mqh
Funzione ClassifierSplit() e quella da cui viene chiamata.
Lo capirete in un paio d'ore e non dovrete parlare della ricerca dei predittori da una riga.

Avete ragione riguardo alle molte righe.

Torniamo all'inizio: cos'è un modello in una foresta casuale?

È un singolo albero. Ecco un esempio di uno di questi alberi da RF:

    left daughter right daughter split var split point status prediction
1               2              3         2  0.34154125      1          0
2               4              5         2  0.28238475      1          0
3               6              7         4  0.37505155      1          0
4               0              0         0  0.00000000     -1          2
5               8              9         5  0.64235664      1          0
6               0              0         0  0.00000000     -1          2
7              10             11         1  0.45438075      1          0
8              12             13         1  0.46271469      1          0
9              14             15         3  0.25803691      1          0
10             16             17         2  0.51942328      1          0
11             18             19         1  0.48839881      1          0
12             20             21         3  0.45243581      1          0
13              0              0         0  0.00000000     -1          2
14              0              0         0  0.00000000     -1          2
15             22             23         6  0.62789488      1          0
16             24             25         2  0.34224983      1          0
17             26             27         4  0.53845361      1          0
18             28             29         3  0.39207978      1          0
19             30             31         3  0.03596312      1          0
20             32             33         7  0.49380156      1          0
21              0              0         0  0.00000000     -1          2
22              0              0         0  0.00000000     -1          2
23             34             35         6  0.76472904      1          0
24              0              0         0  0.00000000     -1          1
25              0              0         0  0.00000000     -1          2
26             36             37         5  0.87588550      1          0
27             38             39         1  0.31089209      1          0
28             40             41         2  0.39193398      1          0
29             42             43         1  0.47068628      1          0
30             44             45         7  0.76420940      1          0
31             46             47         2  0.38380954      1          0

 [ reached getOption("max.print") -- omitted 185 rows ]

Totale righe = 166+185! Tutti non si adattavano

Ci sono 150 alberi di questo tipo nel mio modello

split var - это номер переменной, всего их в модели 8
split point - лучшее значение конкретной переменной, которое использовалось для разделения.
 
СанСаныч Фоменко #:

Hai ragione riguardo alle numerose linee.

Torniamo all'inizio: cos'è un modello in una foresta casuale?

È un singolo albero. Ecco un esempio di uno di questi alberi da RF:

Totale righe = 166+185! Nessuna di esse si adatta

Ci sono 150 alberi di questo tipo nel mio modello

Consideriamo di nuovo il percorso che forma la foglia. Nel mio esempio precedente ci sono 5 spaccature. Non è forse una descrizione del modello di 2 vertici con un avvallamento? Descrizione.
7 spaccature possono descrivere testa spalle ecc.
Ogni foglia di un albero descrive un modello diverso.

La foresta è l'opinione della folla (derviews).
Il 1° albero dice: questa stringa cade nel mio 18° schema/foglia e la risposta = 1
2°: la stessa stringa cade nel mio 215 schema/foglia e dà risposta=0
3°: = 1

...

Facciamo la media e otteniamo l'opinione media di 150 alberi. Per esempio = 0,78. Ognuno aveva una foglia/modello attivato diverso.

 
Forester #:

Consideriamo ancora una volta il foglio di formazione del percorso. Nel mio esempio precedente ci sono 5 spaccature. Non è forse una descrizione del modello di 2 top con un trough? Descrizione.
7 spaccature possono descrivere spalle e testa ecc.
Ogni foglia di un singolo albero descrive un modello diverso.

Una foresta è l'opinione di una folla di dervisci.
Il 1° albero dice: questa linea cade nel mio 18° modello/foglia e la risposta = 1
2°: la stessa linea cade nel mio 215 modello/foglia e dà risposta=0
3°: = 1

...

Facciamo la media e otteniamo l'opinione media di 150 alberi. Ognuno aveva una foglia/modello attivato diverso.

Non sappiamo quante foglie.

Il numero di alberi è un parametro che può essere modificato per ottenere la dimensione minima del campione per l'addestramento.

Vediamo che 50 alberi sono sufficienti, quindi è conveniente considerare un albero come un pattern.

 
СанСаныч Фоменко #:

Non si sa quante siano le foglie.

Il numero di alberi è un parametro che può essere modificato per ottenere la dimensione minima del campione per l'addestramento.

Vediamo che 50 alberi sono sufficienti, quindi è conveniente considerare un albero come un modello.

L'albero risponde a ogni situazione/riga con una foglia/modello. In altre situazioni la risposta sarà data da altre foglie/modelli.
 
Forester #:
L'albero risponde a ogni situazione/linea con una foglia/modello. In altre situazioni la risposta sarà data da altre foglie/modelli.

Sembra che non solo la foglia, ma anche l'albero non risolva nulla.

Qui ho trovato la formula per il classificatore finale




Dove

  • N - numero di alberi;
  • i - contatore degli alberi;
  • b - l' albero decisivo;
  • x - il campione generato dai dati.

Vale la pena notare che per il compito di classificazione si sceglie la soluzione a maggioranza, mentre per il compito di regressione si sceglie la soluzione in base alla media.

 
СанСаныч Фоменко #:

Sembra che non solo la foglia, ma anche l'albero non risolva nulla.

Ecco la formula per il classificatore finale

Vale la pena notare che per il compito di classificazione scegliamo la soluzione a maggioranza, mentre per il compito di regressione scegliamo la soluzione in base alla media.

Perché non risolve? Contribuisce (1/150) alla risposta finale.

Da ogni albero una delle foglie/pattern attivati partecipa alla votazione (media).

La risposta della foresta è la media delle risposte di tutti gli alberi (o foglie/pattern attivati) - questa formula la conta. La maggioranza per la classificazione binaria sarà se la media è >0,5, allora 1, altrimenti 0.
Ma il confine di 0,5 non è probabilmente l'opzione migliore, se il pacchetto dà accesso al valore della media, si possono sperimentare diversi confini.

 
Forester #:
L'albero risponde a ogni situazione/linea con una foglia/modello. In altre situazioni la risposta sarà data da altre foglie/modelli.
SanSanych Fomenko #:

Sembra che non solo la foglia, ma anche l'albero non risolva nulla.

Non solo una foglia ma tutti gli alberi sono responsabili di ogni situazione, solo che non tutti sono attivati, la somma delle previsioni di quelli che sono attivati è la previsione del modello....


Di cosa diavolo state parlando, esperti di modelli ad albero?

 
mytarmailS #:

Non una foglia, ma tutti gli alberi sono responsabili di ogni situazione, solo che non tutti sono attivati, la somma delle previsioni di quelli che sono attivati è la previsione del modello.


Di cosa diavolo state parlando, esperti di modelli di alberi?

Avete detto qualcosa di nuovo? Se no, allora anche secondo voi è spazzatura.