L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 1266
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
In questo thread, un post ospite. Sono passato solo per condividere un articolo
Questo, tra l'altro, è accurato.
Considerando il numero di idioti sul forum (tra cui il tuo mudo mago preferito ...) non credo che sia necessario sostenere questo argomento più, perché ho ricevuto quasi nessun beneficio per me
Maxim, ti sbagli! C'è un beneficio per voi, un beneficio nella stessa formulazione e presentazione dei compiti. Tuttavia, non sto cercando di persuadervi.
Maxim, ti sbagli! C'è un beneficio per voi, un beneficio nella formulazione e presentazione stessa dei compiti. Tuttavia, non sono persuasivo.
Si vede che qui vivono degli idioti clinici, non sono maschere da forum ma casi reali, tu gli dici una parola e loro te ne dicono due dopo ogni post.
Ho trovato un codice oscuro nella foresta di Alglib. Codice completo della funzione di calcolo della cross-etropia da dataanalysis.mqh:
//+------------------------------------------------------------------+
//| Average cross-entropy (in bits per element) on the test set |
//| INPUT PARAMETERS: |
//| DF - decision forest model |
//| XY - test set |
//| NPoints - test set size |
//| RESULT: |
//| CrossEntropy/(NPoints*LN(2)). |
//| Zero if model solves regression task. |
//+------------------------------------------------------------------+
static double CDForest::DFAvgCE(CDecisionForest &df,CMatrixDouble &xy,
const int npoints)
{
//--- create variables
double result=0;
int i=0;
int j=0;
int k=0;
int tmpi=0;
int i_=0;
//--- creating arrays
double x[];
double y[];
//--- allocation
ArrayResizeAL(x,df.m_nvars);
ArrayResizeAL(y,df.m_nclasses);
//--- initialization
result=0;
for(i=0;i<=npoints-1;i++)
{
for(i_=0;i_<=df.m_nvars-1;i_++)
x[i_]=xy[i][i_];
//--- function call
DFProcess(df,x,y);
//--- check
if(df.m_nclasses>1)
{
//--- classification-specific code
k=(int)MathRound(xy[i][df.m_nvars]);
tmpi=0;
for(j=1;j<=df.m_nclasses-1;j++)
{
//--- check
if(y[j]>(double)(y[tmpi]))
tmpi=j;
}
//--- check
if(y[k]!=0.0)
result=result-MathLog(y[k]);
else
result=result-MathLog(CMath::m_minrealnumber);
}
}
//--- return result
return(result/npoints);
}
Il frammento di codice segnato in rosso considera qualcosa(tmpi) che non viene utilizzato in alcun modo. Perché è incluso allora?
Secondo wikipedia dovrebbe essereO manca qualcosa o il codice non è completamente pulito.
In generale, ho iniziato a entrare in questa funzione perché volevo cercare 1 albero. E quando ho impostato il numero di alberi nella foresta = 1, ho visto che tutti gli errori sono tra 0 e 1, e questo da 100 a 300 + succede.
Qualcuno capisce l'entropia incrociata - il codice è anche corretto, o qualcosa è annullato?
Il valore in generale all'infinito può essere quando si calcola il logloss se la probabilità zero è prevista per la classe corretta, perché la formula include tutte le altre classi tranne che con coefficiente zero, e sembra che abbiano cercato di risolvere in qualche modo questo inconveniente - in tmpi nel ciclo trova la classe che in un dato campione ha il più alto valore di probabilità, forse voleva aggiungere alla formula, ma apparentemente non ci ha pensato fino in fondo:)
In totale, 1 tmpi è presente e in uso, altri 2 sono presenti ma non utilizzati.
Nel complesso, non influisce sul funzionamento.
tmpi è usato solo in 1 delle 5 funzioni di errore. Apparentemente è stato usato come manichino per altre funzioni, ma ha dimenticato di rimuoverlo in altre.
Tutto sommato, 1 tmpi è presente e in uso, altri 2 sono presenti ma non sono utilizzati.
In generale, non influisce sul funzionamento.
Quello che voglio dire è che una buona formula per il calcolo dell'errore potrebbe prendere in considerazione la distribuzione di probabilità su tutte le classi invece di una sola corretta.
Detto questo, se uno dei campioni ha probabilità zero di una classe corretta, allora tutto vola all'infinito.
Apparentemente questo è il motivo per cui preferisco la regressione con un errore quadratico:)
In pratica sto dicendo che una buona formula di calcolo dell'errore potrebbe prendere in considerazione la distribuzione di probabilità su tutte le classi, non solo una corretta.
Ora lasciamo che Kesha (nipote di SanSanYch) e Alyosha, che è stato punito dagli investitori, guidino questo thread. Sarà giusto.
Ha più senso abbandonare questo argomento e iniziarne uno nuovo, più adeguato, con altri argomenti correlati.
A proposito, ho trovato una distribuzione normale nei prezzi. Ho già scritto in Tip che tutte le anomalie provengono da un'elaborazione "scorretta" dei dati - lo facciamo noi stessi).
Lo posterò nel thread di Python uno di questi giorni o prima.
Ha più senso abbandonare questo argomento e iniziarne uno nuovo, più adeguato, con altri argomenti correlati.
A proposito, ho trovato una distribuzione normale nei prezzi. Ho già scritto in Tip che tutte le anomalie provengono da un'elaborazione "scorretta" dei dati - lo facciamo noi stessi).
Lo posterò nel thread di Python uno di questi giorni o prima.
Ahimè, a causa della mancanza di persone su questo forum al livello di Matemat, Northwind e Prival, tutti questi argomenti non hanno futuro. IMHO.