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

 
SanSanych Fomenko:

Capisco la differenza tra alberi e foreste (o penso di capirla) le foreste sono migliori da usare quando c'è più incertezza nei dati, cioè un modello meno stabile poiché le foreste prendono decisioni tramite votazione, cosa che viene fatta da alberi casuali (indipendenti a causa dell'accorciamento), o mi sbaglio?

Non lo so, sto giudicando dai risultati.

E l'opzione "adad" non ho, non è nello screenshot, c'è "Forest" - non è questo?

In ordine:


Albero

Il pacchetto "rpart" fornisce la funzione"rpart".


Aumenta

# Extreme Boost

# Il pacchetto `xgboost' implementa l'algoritmo extreme gradient boost.


SVM

# Macchina vettoriale di supporto.

# Il pacchetto 'kernlab' fornisce la funzione 'ksvm'.


Lineare

# Modello di regressione

# Costruire un modello di regressione.


Rete neurale

# Rete neurale

# Costruisci un modello di rete neurale usando il pacchetto nnet.

libreria(nnet, quietly=TRUE)


A proposito, ho fatto questo lavoro per voi - potete vedere tutto in Log voi stessi. Se avete un'altra versione di rattle, la lista potrebbe essere diversa.

Grazie per la trascrizione. Ho la versione 5.1.0 probabilmente l'ultima - tutti questi pacchetti vengono installati automaticamente quando vengono chiamati, e in più c'è "Forest".

SanSanych Fomenko:

La libreria è modificata su mio ordine - avevo bisogno di un tester di MT5. Ho fatto i conti, troppo pigro per cercarli, potrei averli ripuliti.

Dai un'occhiata agli articolidi Vladimir Perervenko

Se siete interessati alle reti, è l'ultimo in questo settore, R, consiglieri, l'uomo è disponibile sul sito

Grazie, darò un'occhiata.

 
SanSanych Fomenko:


Quindi come si fa a tagliare un file con R, è necessario usare un algoritmo speciale? È interessante vedere cosa succede alla fine.

Per indice, per esempio: [1:2000,], [2001:4000,]. È importante non interrompere la sequenza temporale naturale nel secondo file

In altre parole, si può tagliare in Excel, giusto?

 
Maxim Dmitrievsky:

Provate come volete :) La cosa principale è non dimenticare di leggere la teoria, per non fare qualcosa di stupido, e non è difficile usare qualsiasi pacchetto, ce ne sono molti, e anche online - non avete bisogno di installare nulla. C'è un boom dei dati, "è" ovunque

Non ho tempo per analizzare gli archivi, sto lavorando alle mie cose

Il punto è che diverse varianti danno risultati diversi, e se è così, come si può concludere sulla qualità dei predittori? Si scopre solo che è necessario prendere la versione media, cioè se ovunque non è male, allora va bene, e poi sintonizzare la rete/albero/foresta?

E ancora, vorrei sapere come trasferire la logica dell'albero a Expert Advisor...

 
Aleksey Vyazmikin:

Quindi si può anche tagliare in Excel, giusto?

Non c'è bisogno di Excel. Una linea, tutto qui.

Leggi Robert I. Kabakov R in azione. Analisi e visualizzazione dei dati nel linguaggio R. È disponibile su Internet.

 
Yuriy Asaulenko:

Non c'è bisogno di Excel. 1 linea e basta.

Leggi - Robert I. Kabakov R in azione. Analisi e visualizzazione dei dati nel linguaggio R. È disponibile su Internet.

Si può non sapere tutto - non ho lo scopo di imparare la programmazione in R, ho bisogno della possibilità di controllare i predittori e di convertire il set di regole in MT5. In generale, se si tratta di una stringa, perché non scriverla per voi? Ho fatto fronte con i mezzi disponibili.

 
SanSanych Fomenko:


La tua immagine del sonaglio è incompleta. Come minimo dovresti andare alla scheda di valutazione adiacente e vedere i risultati lì.

Ma la cosa più importante è dividere il file sorgente in due parti con nomi diversi (molto probabilmente dovrete farlo in R).

Nel primo file costruire tutti e sei i modelli e guardare il loro test di stima, convalidare. Poi il nome del secondo file entrare nel campo R Dataset. E su di esso si ottengono di nuovo dei segni. Tutte le stime devono corrispondere approssimativamente!

Se queste stime non coincidono, e il secondo file mostra risultati peggiori dei modelli, allora significa che i modelli sono sovrallenati e la ragione di ciò è il rumore (non legato alla variabile obiettivo) dei predittori.


Questo è il momento della verità: o avete un insieme di predittori rilevanti per una particolare variabile obiettivo o non lo avete. E nessun modello può risolvere questa sfortunata circostanza. Poi inizia il lavoro stupido di trovare una coppia di "target-predittori", i modelli non sono affatto interessanti, ne troverai una coppia, poi i modelli sono solo semi in R, ne troverai una dozzina in un giorno e ne farai degli ensemble.

Vi chiederò di spiegarvi in modo più dettagliato.

1. Nella scheda "Valutare" quale parametro scegliere nel set "Tipo"?

2. Cosa devo fare per poter inserire il nome di un secondo file? La mia finestra è attiva, ma non posso selezionare il file! E "File CSV" - perché posso scegliere lì?


 
Aleksey Vyazmikin:

Il punto è che diverse opzioni danno risultati diversi, e se questo è il caso, come possiamo concludere sulla qualità dei predittori? Si tratta semplicemente di prendere la variante media, cioè se non è male ovunque, allora va bene, e poi modificare la rete/albero/foresta?

E ancora, voglio sapere come trasferire la logica dell'albero all'Expert Advisor...

Perché? mt5 ha una foresta casuale, puoi adattarla alle tue esigenze. Osservate gli errori e date esempi di test, guardate i risultati. L'unica cosa è che non emette variabili

Ma se si considera che gli algoritmi sono gli stessi ovunque, si può visualizzare e sperimentare in R, poi addestrarlo e usare MT.

 
Aleksey Vyazmikin:

Comunque, se si tratta di una sola riga, perché non scriverla? Beh, nel frattempo, me la sono cavata con i mezzi a disposizione.

Beh, non l'ho chiesto io, l'hai fatto tu.) Non ne ho bisogno.)

E se lavorate con R, potreste doverlo fare.

 
Aleksey Vyazmikin:

Vi chiederei di spiegarvi in modo più dettagliato.

1. Nella scheda "Valutare", quale parametro devo selezionare nel set "Tipo"?

2. Cosa devo fare per poter inserire il nome del secondo file? La mia finestra è attiva, ma non posso selezionare un file! E "File CSV" - perché posso scegliere lì?


1. qualsiasi. Si tratta di un modello di valutazione diverso e ognuno ha un significato diverso. Rattle è buono proprio perché dà al principiante una conoscenza sistematica del machine learning: preparazione dei dati di input, modellazione, stima del modello. Solo avendo padroneggiato almeno ad un livello primitivo tutte e TRE le parti, ha senso passare dal giocare con i numeri a cose più significative.

2. R Dataset è un file r. Significa che nella scheda Data i dati iniziali sono stati caricati come RData File - è uno spazio di lavoro in termini di R. In questo spazio di lavoro sono stati preparati due frame di dati: uno per l'allenamento e il test del modello, e l'altro come questo stesso R Dataset.

Il modo più semplice per farlo è caricare un file Excel già pronto, scaricare il log, uscire in R e dividere in due il frame di dati risultante.

In alternativa.

Aprite R stesso e scaricate il file excel - questa è una riga. Poi divide il frame di dati in due.

Ma devi usare il secondo file del modello addestrato.

 
Maxim Dmitrievsky:

Perché? mt5 ha una foresta casuale, puoi adattarla alle tue esigenze

Oppure, considerando che gli algoritmi sono gli stessi ovunque, si può visualizzare e sperimentare in R, e poi addestrare e utilizzare in MT

Il programma "Deductor Studio" mostra tutto visivamente bene, cioè l'albero, le regole; non lo vedo ancora in R, e non ce ne saranno in MT5 (cioè tutto si può fare, ma devo pagare...). Quindi, risulta che dovrei usare la libreria algib per includere le foreste casuali in MT5, vero?

Ho trovato un pezzo di codice dell'algoritmoC4.5 http://datascientist.one/algorithm-c4-5/ in R, è molto difficile da implementare in MT5?

C45 <- function(data,x){
   result.tree <- NULL
   if ( IsEmpty(data) ) {
                node.value <- "Failure"
                result.tree <- CreateNode(node.value)
                return(result.tree)
        }
         if( IsEmpty(x) ){
                node.value <- GetMajorityClassValue(data,x)
                result.tree <- CreateNode(node.value)
                return(result.tree)
        }
         if( 1 == GetCount(x) ){
                node.value <- GetClassValue(x)
                result.tree <- CreateNode(node.value)
                return(result.tree)
        } <br>

       gain.ratio <- GetGainRatio(data,x)<br>
     best.split <- GetBestSplit(data,x,gain.ratio)

     data.subsets <- SplitData(data,best.split)
     values <- GetAttributeValues(data.subsets,best.split)
     values.count <- GetCount(values)

     node.value <- best.split
    result.tree <- CreateNode(node.value)
         idx <- 0
    while( idx<=values.count ){
        i       dx <- idx+1
                newdata <- GetAt(data.subsets,idx)
                value <- GetAt(values,idx)
                new.x <- RemoveAttribute(x,best.split)
                new.child <- C45(newdata,new.x)
                AddChildNode(result.tree,new.child,value)
   }

    result.tree
        }
Алгоритм C4.5
Алгоритм C4.5
  • 2016.05.06
  • datascientist.one
Алгоритм C4.5 строит классификатор в форме дерева решений. Чтобы сделать это, ему нужно передать набор уже классифицированных данных. А что такое классификатор? Классификатор – это инструмент, применяемый в data mining, который использует классифицированные данные и на их основании пытается предсказать, к какому классу стоит отнести новые...