L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 1266
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Dans ce fil, un billet d'invité. Je suis venu partager un article
Ceci, d'ailleurs, est exact.
Compte tenu du nombre de crétins sur le forum (y compris votre magicien préféré mudo ...) je ne pense pas qu'il soit nécessaire de soutenir ce sujet plus, parce que j'ai reçu presque aucun bénéfice pour moi-même
Maxim, tu as tort ! Il y a un avantage pour vous, un avantage dans la formulation et la présentation mêmes des tâches. Cependant, je n'essaie pas de vous persuader.
Maxim, tu as tort ! Il y a un avantage pour vous, un avantage dans la formulation et la présentation mêmes des tâches. Cependant, je ne suis pas convaincue.
Vous pouvez voir que des crétins cliniques vivent ici, ce ne sont pas des masques de forum mais des cas réels, vous leur dites un mot et ils vous en disent deux après chaque post.
J'ai trouvé un code obscur dans la forêt d'Alglib. Code complet de la fonction de calcul de l'étropie croisée de 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);
}
Le fragment de code marqué en rouge considère quelque chose(tmpi) qui n'est pas utilisé de quelque manière que ce soit. Pourquoi est-elle incluse alors ?
Selon wikipedia , il devrait êtreSoit il manque quelque chose, soit le code n'est pas complètement nettoyé.
En général, j'ai commencé à m'intéresser à cette fonction parce que je voulais rechercher 1 arbre. Et lorsque j'ai défini le nombre d'arbres dans la forêt = 1, j'ai vu que toutes les erreurs se situent entre 0 et 1, et que celle de 100 à 300 + se produit.
Quelqu'un comprend-il l'entropie croisée - le code est-il même correct, ou quelque chose est-il défait ?
La valeur en général à l'infini peut être lors du calcul de logloss si la probabilité zéro est prédit pour la classe correcte, parce que la formule comprend toutes les autres classes sauf elle avec un coefficient zéro, et il semble avoir essayé de résoudre d'une manière ou d'une autre ce pépin - dans tmpi dans la boucle trouver la classe qui, dans un échantillon donné a la valeur de probabilité la plus élevée, peut-être voulu ajouter à la formule, mais apparemment n'a pas pensé à travers :)
Au total, 1 tmpi est présent et utilisé, 2 autres sont présents mais non utilisés.
Dans l'ensemble, cela n'affecte pas le fonctionnement.
tmpi n'est utilisé que dans 1 des 5 fonctions d'erreur. Apparemment, il a été utilisé comme mannequin pour d'autres fonctions, mais a oublié de le retirer dans d'autres.
En tout, 1 tmpi est présent et utilisé, 2 autres sont présents mais ne sont pas utilisés.
En général, elle n'affecte pas le fonctionnement.
Ce que je veux dire, c'est qu'une bonne formule de calcul de l'erreur pourrait prendre en compte la distribution de probabilité sur toutes les classes au lieu d'une seule correcte.
Cela dit, si l'un des échantillons a une probabilité nulle de classe correcte, alors tout s'envole vers l'infini.
Apparemment, c'est pour cela que je préfère la régression avec une erreur quadratique :)
Je dis essentiellement qu'une bonne formule de calcul des erreurs pourrait prendre en compte la distribution de probabilité de toutes les classes, et pas seulement d'une classe correcte.
Laissez maintenant Kesha (petit-fils de SanSanYch) et Aliocha, qui a été puni par les investisseurs, mener ce fil. Ce sera juste.
Il est plus logique de laisser tomber ce sujet et d'en commencer un nouveau, plus adéquat, avec d'autres sujets connexes.
Au fait, j'ai trouvé une distribution normale dans les prix. J'ai déjà écrit dans Tip que toute anomalie provient d'un traitement "incorrect" des données - nous le faisons nous-mêmes).
Je le posterai dans le fil de discussion de Python un de ces jours ou plus tôt.
Il est plus logique de laisser tomber ce sujet et d'en commencer un nouveau, plus adéquat, avec d'autres sujets connexes.
Au fait, j'ai trouvé une distribution normale dans les prix. J'ai déjà écrit dans Tip que toute anomalie provient d'un traitement "incorrect" des données - nous le faisons nous-mêmes).
Je le posterai dans le fil de discussion sur les pythons un de ces jours ou plus tôt.
Hélas, en raison du manque de personnes sur ce forum du niveau de Matemat, Northwind et Prival, tous ces sujets n'ont pas d'avenir. IMHO.