Discussione sull’articolo "Le foreste casuali prevedono le tendenze" - pagina 12

 

A: CyberCortex

Scusa SanSanych se mi intrometto.

Non potevo passare davanti a tanta altezzosità e aggressiva non professionalità.

Consideriamo le affermazioni dell'autore dalla sua descrizione del programma di applicazione una per una

Citazione: "Vantaggi di CyberCortex rispetto agli analoghi esistenti:

  • L'algoritmo utilizzato. Per molti trader, le tecnologie del campo dell'intelligenza artificiale iniziano e finiscono con l'argomento trito e ritrito delle reti neurali classiche. Ma l'algoritmo di bousting implementato in CyberCortex è uno strumento di un ordine di grandezza più potente e moderno(?), perché: "

Obiezione:

  1. Da dove proviene questa opinione grandiosa di molti trader? Generalmente questo campo si chiama Machine Learning, l'Intelligenza Artificiale è un po' diverso. Sono sicuro che molti trader conoscono molti tipi di reti neurali che voi non avete mai sentito nominare (reti profonde, reti convoluzionali e altre reti moderne). L'argomento delle reti neurali è ormai esaurito per coloro che si sono limitati a studiare le MLP . Mi affretto a deludervi: l'argomento delle reti neurali ha ricevuto un secondo respiro dopo lo sviluppo dei metodi di deep learning e, per chi sa e può farlo, è tutt'altro che un argomento chiuso. Inoltre, conosciamo molti altri algoritmi di classificazione che sono stati implementati in numerosi pacchetti del linguaggio R.

  2. L'algoritmo di bousting, con varie modifiche, è noto da molto tempo (1996) e non è in alcun modo più potente dell'algoritmo di rete neurale. A proposito, dovreste dirci quale algoritmo utilizza il vostro programma. Una rapida occhiata ai pacchetti R -

  • "ADA"- adaptive stochastic bousting. uno dei miei preferiti, sono implementate tre modifiche dell'algoritmo originale: Gentle-, Logit- e Real AdaBoost

    .

  • "adabag" - il pacchetto utilizza gli algoritmi multiclasse Adaboost.M1 (Freund e Schapire), AdaBoost-SAMME (Zhu et al., 2009) e l'algoritmo Bagging di Breiman ;

  • "boost" - contiene un insieme di metodi di boosting come - 'BagBoost', 'LogitBoost', 'AdaBoost' e 'L2Boost' integrati da una preselezione delle caratteristiche (predittori) utilizzando la statistica del test di Wilcoxon ;

  • pga" - contiene un insieme di algoritmi che combinano AdaBoost e Random Forest con un algoritmo evolutivo.

    Se si dispone di un algoritmo originale sconosciuto al mondo, si prega di descrivere almeno in termini generalila differenza rispetto agli algoritmi esistenti e gli eventuali vantaggi rispetto ad essi ; sarebbe auspicabile un link alla descrizione.

Come si può vedere, la scelta è piuttosto ampia.

Per chi non è del mestiere. "Busting" (amplificazione) - un metodo di ricampionamento proposto originariamente perrisolvere problemi in settori della scienza, dove inizialmente il numero di esempi (risultati di esperimenti) da utilizzare nei calcoli statistici erano pochi, estrarne di nuovi è impossibile o molto costoso. L'essenza del metodo consiste nell'estrarre da un piccolo insiemeiniziale un campione di dimensioni minori formato in modo casuale.Questaprocedura viene ripetutamolte volte e come risultato si ottiene un campione totale sufficientemente grande, che viene poi utilizzato nei calcoli statistici.

Prima di tutto. Il mercato Forex non è un caso di "deficit di dati". Al contrario, è un caso di "abbondanza di dati".

In secondo luogo. La lungaesperienza nellaricerca e nell'applicazione di bousting e della crossvalidazione nella pratica e nelle università ha dimostrato che questi metodi non sono auspicabili nel processo di addestramento, cioè quando si seleziona un modello pererroreinterno. Ma sono molto utili nella fase di valutazione del modello addestrato, cioè per ottenere l'errore esterno. Pertanto, per il nostro caso di "abbondanza di dati", la suddivisione in addestramento/valida/test durante l'addestramento è ideale. Ci sono molte altre sottigliezze che dovrebbero essere prese in considerazione nel processo di selezione dei dati e di pre-addestramento e da cui dipende in larga misurail risultato della modellazione, ma questo è un argomento a parte.

Dalla mia esperienza di lunghi esperimenti con ADA posso dire che a volte i risultati sono eccellenti, a volte disgustosi = molto instabili.


Citazione: "L'algoritmo non richiede di ridurre la dimensionalità dei dati di input e di scoprire quali caratteristiche sono informative e quali no. Al contrario, maggiore è il numero di dati di input disponibili, più alta è la probabilità di una classificazione corretta. Le caratteristiche non informative vengono automaticamente scartate".

Domanda: come vengono magicamente eliminate le caratteristiche non informative? La determinazione(valutazione) dell'importanza dei predittori è inclusa in ogni algoritmo di albero decisionale, ma i criteri utilizzati per determinare l'importanza sono molti e non tutti danno risultati univoci. Come si risolve il problema nel programma?

Citazione: "L'algoritmo non richiede alcuna normalizzazione preliminare dei dati né alcuna manipolazione preliminare. Tutti i dati vengono automaticamente ridotti alla varianza unitaria e all'aspettativa matematica zero".

L'unico algoritmo che non richiede alcuna elaborazione preliminare èRandomForest. Tutti gli altri richiedono varie preelaborazioni. Ovviamente intende dire che il suo programma esegue il processo di standardizzazione (x meno la media divisa per la deviazione standard) per l'utente? Non sono sicuro che questa sia una buona soluzione, perché ci sono almeno una dozzina di metodi dipre-elaborazione diversie bisogna determinare quale sia il migliore in ogni singolo caso.

Citazione: " L'algoritmo, a differenza delle reti neurali, non richiede la regolazione dei parametri di addestramento per ottenere un risultato di classificazione ottimale."

Non è vero. Qualsiasi algoritmo di boustingconosciuto ha almeno due parametri che devono essere regolati per ottenere il risultato migliore.

Citazione:"L'algoritmo è virtualmente immune dalla tendenza all'overtraining".

Affermazione falsa. Qualsiasi algoritmo di apprendimento automatico è soggetto a questa malattia: l'overlearning. La riduzione del rischio di ottenere un modello sovrallenato si ottiene con la regolarizzazione. Oggi sono noti e utilizzati con successo diversi metodi di regolarizzazione, anche negli algoritmi di bousting.

Citazione:"L'algoritmo permette di classificare i dati in un numero qualsiasi di classi".

Questo non è un risultato di questo algoritmo. Oggi quasi tutti gli algoritmi di apprendimento automatico lo fanno.

Citazione:"La particolarità dell'algoritmo implementato è che se ci sono schemi nei dati - verranno trovati. Al contrario, se non ci sono schemi nei dati, le previsioni del programma non saranno migliori di un semplice lancio di moneta, il che è logico".

Forse vi sorprenderà, ma tutti gli algoritmi hanno questa caratteristica.

In conclusione, l'algoritmo incomprensibile che offrite in cambio di denaro può essere implementato in modo trasparente, semplice e in diverse varianti nel linguaggio R e notate che è assolutamente gratuito, cioè senza costi. Questo programma sarà lungo 10-15 righe. Questo è il primo. Il secondo, innegabile vantaggio del linguaggio R è che è sviluppato e supportato dalla comunità scientifica mondiale (praticamente tutte le università del mondo) e ora anche dai giganti del software. Microsoft ha lanciato un servizio cloud "Azure" con Microsoft Azure Machine Learning Studio" che consente di produrre nel cloud tutte le fasi di creazione, addestramento e valutazione del modello e successivamente di ottenere previsioni inviando al servizio i dati del proprio modello. Il servizio si basa interamente sul linguaggio R e ha un'interfaccia grafica che permette di ridurre il processo a "disegnare" un'immagine (sto semplificando, ovviamente). Se prima il linguaggio era uno standard de facto nei circoli di ricerca, ora è praticamente diventato tale nel campo applicato e industriale.

Un'ultima cosa. Non sono contrario al fatto che si monetizzi il lavoro incarnato nel programma. Va bene così. Sono contrario all'attribuzione di qualità inesistenti o esagerate al prodotto per scopi pubblicitari. Sembra poco professionale.

Fate attenzione. Come dice il classico.

Buona fortuna


 
vlad1949:


Ciao!

"In generale, questo campo si chiama Machine Learning, l'Intelligenza Artificiale è un po' diverso".- L'apprendimento automatico è una sottosezione dell'intelligenza artificiale. Ma sono sicuro che te ne sei dimenticato. Succede...

Ho sentito parlare di nuovi tipi di reti neurali:) E, se ci fai caso, nella descrizione del mio programma si parla di" reti neuraliclassiche ", non di tutte le reti. Per classiche intendo MLP, i suoi derivati, la rete di Hopfield, la rete probabilistica e altre.

"Da dove proviene questa opinione smaccatamente grandiosa di molti trader?". - Questa mega opinione iper-importante deriva dal fatto che la stragrande maggioranza dei trader che cercano di utilizzare tecnologie deboli di intelligenza artificiale utilizzano reti neurali classiche .

"Tra l'altro, sarebbe necessario indicare su quale algoritmo specifico gira il vostro programma". - Busting adattivo di alberi decisionali a singolo livello (stumps). È scritto lì. Poiché l'ho implementato da zero da solo, senza avere davanti a me alcun modello di riferimento, e non c'era una descrizione normale su Internet, ho applicato alcune delle mie euristiche quando l'ho sviluppato.

"Per i non addetti ai lavori. "Il boosting è un metodo di ricampionamento proposto da..." - Non so da dove l'hai copiata, ma credo che questa definizione non descriva il boosting, ma il bootstrap:) Il boosting è il potenziamento di classificatori semplici. Nel bousting, non si ottiene un campione grande N da un campione piccolo m. Nel bousting, per ogni classificatore semplice successivo, gli esempi classificati in modo errato dal precedente vengono campionati in modo preferenziale. Il numero di esempi è sempre uguale al numero di esempi originali. Dopo questo, è particolarmente divertente leggere il tuo serio:"Per coloro che sono fuori dal giro". xD

"Prima di tutto. Il mercato forex non è un caso di "scarsità di dati". Al contrario, è un caso di 'abbondanza di dati'".- Beh, dipende da quale lato si guarda la cosa. Se intendi le quotazioni del forex e un mucchio di indicatori "pseudo-matematici" che sanno di antico e vari derivati, allora sì, non c'è scarsità. Ma dato che sei andato in un'altra direzione, confondendo per sbaglio il bousting con il bootstrap, la tua massima rimarrà inascoltata, dato che non ho idea del tipo di risposta che stai aspettando.

"La lungaesperienza nellaricerca e nell'applicazione di bousting e crossvalidation nella pratica e nelle università ha dimostrato..." - davvero? Noioso...

"Dalla mia esperienza di lunghi esperimenti con ADA posso dire - a volte grandi risultati, a volte disgustosi = molto instabili " ". - La tua esperienza non è un assioma per noi, forse hai confuso qualche bottone o qualcosa del genere, simile alla confusione appena sopra. Non lo so.

"Come si risolve questo problema nel software? ". - ogni classificatore semplice si concentra sulla caratteristica che produce il minor errore di classificazione. Se la caratteristica non è informativa, l'errore è elevato. Questa è la magia di tutto. Sfidiamo questa logica con qualche altra sciocchezza scientifica su come le università..... No, seriamente, scrivete qualcosa.

" Non sono sicuro che sia una buona soluzione": non ti sembra di essere un po' troppo categorico? Mi sembra che lo sviluppatore del software sia un po' più perspicace su ciò che deve essere aggiunto per farlo funzionare come previsto.

"Non è vero. Qualsiasi algoritmo di boustingconosciuto ha almeno due parametri che devono essere regolati per ottenere un risultato migliore." - Quali sono i parametri da regolare in R? Sto prendendo appunti...

"Citazione:"L'algoritmo è praticamente immune dalla tendenza al sovrallenamento. "Falsa affermazione...."" - Mi piacciono tanto le tue affermazioni :). Beh, prima di tutto, c'è scritto "praticamente". In russo significa "quasi". Ma se c'è un modello stabile nei dati, ad esempio come nell'esperimento di riconoscimento delle targhe automobilistiche, allora sì, l'algoritmo non viene riqualificato. Sul campione di addestramento l'errore si azzera e sul campione di prova l'errore rimane costante, circa l'1%. Le domande?

"Questo non è il risultato di questo algoritmo: oggi quasi tutti gli algoritmi di machine learning fanno così".- potete dirmi che è uno svantaggio. È un vantaggio rispetto a un classificatore binario. O non la pensa così?

"Forse la sorprenderò, ma tutti gli algoritmi hanno questa caratteristica".- Legga attentamente: "se ci sono schemi nei dati, verranno trovati". Questa è la mia enfasi. Il problema principale degli algoritmi di apprendimento automatico è il numero di modelli che vengono trovati. Il mio programma non ha problemi. Secondo la sua logica, si scopre che avendo qualche MLP, le persone non dovrebbero sviluppare altri algoritmi, perché un perseptron multistrato è un algoritmo di apprendimento automatico, e lei dice che"tutti gli algoritmi hanno questa caratteristica".

"Un algoritmo oscuro che offrite per soldi" - Non sto offrendo un algoritmo, ma un programma. Non ho nulla contro il linguaggio R. Ma capite qual è il punto: non tutte le persone possono e vogliono capire la logica e la sintassi del linguaggio di programmazione, comprendere le impostazioni degli algoritmi, convertire alcuni file e collegarsi al terminale attraverso varie stampelle per utilizzare il risultato dei calcoli. Se qualcuno riesce a fare tutto questo, mi congratulo con lui. Ad alcune persone basta che funzioni "out of the box". Penserete che vi stia inseguendo per costringervi a comprare il nostro software. Usate R, vi assicuro che non mi farà arrabbiare.

"Non mi dispiace che tu monetizzi il tuo duro lavoro con il software".- Mi dispiace, ho dimenticato di chiedere la tua opinione in merito. Ma finché a te sta bene, a me sta bene.

"Mi oppongo al fatto che tu attribuisca qualità inesistenti o esagerate a un prodotto a scopo pubblicitario " . - e mi oppongo al fatto che lei scriva di qualcosa di cui non sa nulla.

Grazie, grazie, grazie. Ho finito. Come diceva il classico.

P.S.: Sto solo rispondendo all'aggressività. Senza offesa, pace.

P.P.S.: E sì, non avresti dovuto iniziare a discutere con me:))

 
Ogni valore a zig-zag si basa sul prezzo futuro della valuta, quindi i risultati sono troppo ottimistici, credo.
 

Я не понимаю содержание Скрежет обучение режим? В частности, о том, как использовать платформу использовать платформу MT4 MQL предварительной подгото вки?

 
Potete fornire un esempio di utilizzo di un modello addestrato in MQL4? Grazie mille!
 
Dopo alcune piccole peripezie sono riuscito a far funzionare l'ultima versione di Rattle 4.1.0 su MacOS Sierra, ma il punto del menu R Dataset non permette di scegliere alcun file, rimane grigio. Invece, con RData File ho potuto scegliere "TC.RData" come nome del file e poi "TC" come nome dei dati, e con un Execute ero pronto a partire.
 
Non capisco nemmeno la strada che sta percorrendo
 

Ragazzi, salve! La vostra energia, nella direzione giusta!

Complimenti, avete un errore strategico!

Cito la prima riga del vostro articolo: "Inizialmente, lo scopo di costruire un sistema di trading è quello di prevedere il comportamento di qualche strumento di mercato, ad esempio una coppia di valute".

Non ho nemmeno letto oltre l'articolo. È meglio studiare TUTTI i metodi di previsione!

Vi svelo un segreto: lo scopo della costruzione di un sistema di trading è quello di "creare un modello del (vostro) comportamento".

Non è importante cosa farà il mercato (leader), ma cosa farete voi: AND, OR, NOT.

Ad esempio: AND - inseguire il leader (ripetere le azioni del leader).

 

Ho provato a installare rattle su Linux (Kubuntu), ma non ha funzionato, ci sono molte dipendenze per la compilazione del codice.

Analizzando gli errori di installazione ho ottenuto il seguente elenco di pacchetti che devono essere installati nel sistema operativo stesso prima di installare rattle in R:

console -
$ sudo apt-get install libxml2-dev unixodbc-dev libssl-dev libgtk2.0-dev

E poi si può eseguire l'installazione in R stesso -
> install.packages("rattle", dependencies=TRUE)

E se vi mancano ancora alcuni file *.h per installare rattle, potete trovare il pacchetto richiesto in questo modo
$ sudo apt-get install apt-file
$ apt-file update
$ apt-file search /someheaderfile.h

Forse questo può aiutare qualcun altro :)

 

Dopo l'aggiornamento del sistema operativo rattle ha smesso di funzionare, chiamando rattle() si ottiene un errore
Error in method(obj, ...) : Invalid root element: 'requires'

Il primo modo che si è rivelato quasi utile è stato quello di eseguire rattle con un parametro aggiuntivo
rattle(useGtkBuilder = TRUE)
la finestra del programma si è aperta, ma i pulsanti non funzionavano, il metodo non ha aiutato fino in fondo.

Si è scoperto che la versione di rattle installata da cran è obsoleta, è necessario reinstallare rattle specificando il repository degli sviluppatori per ottenere una nuova versione.
install.packages("rattle", repos="https://rattle.togaware.com", type="source")
E dopo questo tutto ha funzionato bene.