Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 1266
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
En este hilo, un post invitado. Sólo vine a compartir un artículo
Esto, por cierto, es preciso.
Teniendo en cuenta la cantidad de imbéciles que hay en el foro (incluido tu mago favorito mudo...) no creo que sea necesario seguir apoyando este tema, porque no he recibido casi ningún beneficio para mí
¡Maxim, te equivocas! Hay un beneficio para ti, un beneficio en la propia formulación y presentación de las tareas. Sin embargo, no estoy tratando de persuadirte.
¡Maxim, te equivocas! Hay un beneficio para ti, un beneficio en la propia redacción y presentación de las tareas. Sin embargo, no me convence.
Se ve que aquí viven algunos imbéciles clínicos, no son caretas del foro sino casos reales, les dices una palabra y te dicen dos palabras después de cada post.
He encontrado un código oscuro en el bosque de Alglib. Código completo de la función de cálculo de la etiropía cruzada 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);
}
El fragmento de código marcado en rojo considera algo(tmpi) que no se utiliza de ninguna manera. ¿Por qué se incluye entonces?
Según la wikipedia debería serO bien falta algo o el código no está completamente limpio.
En general, empecé a entrar en esta función porque quería buscar en 1 árbol. Y cuando puse número de árboles en el bosque = 1, vi que todos los errores están entre 0 y 1, y este de 100 a 300 + sucede.
¿Alguien entiende la entropía cruzada - el código es incluso correcto, o algo se deshace?
El valor en general al infinito puede ser cuando se calcula logloss si se predice la probabilidad de cero para la clase correcta, porque la fórmula incluye todas las otras clases, excepto que con el coeficiente de cero, y no parece haber tratado de resolver de alguna manera este fallo - en tmpi en el bucle de encontrar la clase que en una muestra dada tiene el valor de la probabilidad más alta, tal vez quería añadir a la fórmula, pero al parecer no lo pensó:)
En total, 1 tmpi está presente y en uso, 2 más están presentes pero no se utilizan.
En general, no afecta al funcionamiento.
tmpi sólo se utiliza en 1 de las 5 funciones de error. Al parecer, se utilizó como maniquí para otras funciones, pero se olvidó de quitarlo en otras.
En total, 1 tmpi está presente y en uso, 2 más están presentes pero no se utilizan.
En general, no afecta al funcionamiento.
Lo que quiero decir es que una buena fórmula para el cálculo del error podría tener en cuenta la distribución de la probabilidad sobre todas las clases en lugar de una sola correcta.
Dicho esto, si una de las muestras tiene una probabilidad nula de ser una clase correcta, entonces todo vuela hacia el infinito.
Al parecer, por eso prefiero la regresión con un error cuadrático:)
Básicamente estoy diciendo que una buena fórmula de cálculo de errores podría tener en cuenta la distribución de probabilidades sobre todas las clases, no sólo una correcta.
Ahora dejemos que Kesha (nieto de SanSanYch) y Alyosha, que fue castigado por los inversores, dirijan este hilo. Será justo.
Tiene más sentido dejar este tema y empezar uno nuevo, más adecuado, con otros temas relacionados.
Por cierto, he encontrado una distribución normal en los precios. Ya he escrito en Tip que toda anormalidad proviene de un tratamiento "incorrecto" de los datos - lo hacemos nosotros mismos).
Lo publicaré en el hilo de Python un día de estos o antes.
Tiene más sentido dejar este tema y empezar uno nuevo, más adecuado, con otros temas relacionados.
Por cierto, he encontrado una distribución normal en los precios. Ya he escrito en Tip que toda anormalidad proviene de un tratamiento "incorrecto" de los datos - lo hacemos nosotros mismos).
Lo publicaré en el hilo de Python un día de estos o antes.
Por desgracia, ante la falta de gente del nivel de Matemat, Northwind y Prival en el foro, todos estos temas no tienen futuro. EN MI OPINIÓN.