Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 486

 
No sé cómo cuenta, el mío cuenta el porcentaje de opciones no adivinadas.
Por ejemplo en esta variante fueron 1000 entradas de las cuales 600 funcionaron en el plus (adiviné) 400 funcionaron en el rojo (adiviné). así que el error es el número de opciones no adivinadas en relación a todas las variantes, en este ejemplo, error = 400/1000 = 0.4

Respetuosamente.
 
Andrey Kisselyov:
No sé cómo funciona para alguien más, pero para mí cuenta el porcentaje de variantes no afortunadas.
Por ejemplo en esta variante fueron 1000 entradas de las cuales 600 funcionaron en el plus (adiviné) 400 funcionaron en el rojo (no adiviné). Así que el error es el número de opciones no adivinadas en relación a todas las variantes, en este ejemplo, error = 400/1000 = 0.4

Respetuosamente.

Aquí entiendo que el error final se divide por el número de muestras multiplicado por el número de entradas por alguna razón, si lo quitas:

return(result/(npoints*df.m_nclasses));

Si lo multiplicas, obtienes un resultado bastante inteligible, por ejemplo 0,5578064232767638 :)


 
Maxim Dmitrievsky:

Aquí entiendo que el error final se divide por el número de muestras multiplicado por el número de entradas por alguna razón, si lo quitas:

Si lo multiplicas entonces el resultado es bastante claro, por ejemplo 0,5578064232767638 :)


lo más probable es que
return(result/(npoints*df.m_nclasses));
significa _Punto (puntos) como puntos adivinados de ... o viceversa.

Saludos.
 
Andrey Kisselyov:
lo más probable es que
Significa _Punto (puntos) como puntos adivinados de ... o viceversa.

Saludos cordiales.

No, aquí npuntos significa la longitud del vector de entrada :)

Mientras que nclasses es el número de salidas, como

//+------------------------------------------------------------------+
//| This subroutine builds random decision forest.                   |
//| INPUT PARAMETERS:                                                |
//|     XY          -   training set                                 |
//|     NPoints     -   training set size, NPoints>=1                |
//|     NVars       -   number of independent variables, NVars>=1    |
//|     NClasses    -   task type:                                   |
//|                     * NClasses=1 - regression task with one      |
//|                                    dependent variable            |
//|                     * NClasses>1 - classification task with      |
//|                                    NClasses classes.             |
//|     NTrees      -   number of trees in a forest, NTrees>=1.      |
//|                     recommended values: 50-100.                  |
//|     R           -   percent of a training set used to build      |
//|                     individual trees. 0<R<=1.                    |
//|                     recommended values: 0.1 <= R <= 0.66.        |
//| OUTPUT PARAMETERS:                                               |
//|     Info        -   return code:                                 |
//|                     * -2, if there is a point with class number  |
//|                           outside of [0..NClasses-1].            |
//|                     * -1, if incorrect parameters was passed     |
//|                           (NPoints<1, NVars<1, NClasses<1,       |
//|                           NTrees<1, R<=0 or R>1).                |
//|                     *  1, if task has been solved                |
//|     DF          -   model built                                  |
//|     Rep         -   training report, contains error on a training|
//|                     set and out-of-bag estimates of              |
//|                     generalization error.                        |
//+------------------------------------------------------------------+
static void CDForest::DFBuildRandomDecisionForest(CMatrixDouble &xy,
                                                  const int npoints,
                                                  const int nvars,
                                                  const int nclasses,
                                                  const int ntrees,
                                                  const double r,int &info,
                                                  CDecisionForest &df,
                                                  CDFReport &rep)

Por lo tanto, el error final debe ser multiplicado por la longitud de la muestra de entrenamiento multiplicada por el número de salidas (si es 1, entonces las salidas deben ser omitidas).

Puede ser útil para alguien

Espero no haber confundido nada y haberlo hecho bien :) al menos los valores de error están claros
 
Maxim Dmitrievsky:

No, aquí npuntos significa la longitud del vector de entrada :)

Entonces usted necesita mirar lo que es rezultado , ya que el divisor es parámetros de entrada.

Con respeto.
 
Andrey Kisselyov:
Si este es el caso, entonces tengo que ver lo que es rezultado, ya que el divisor es los parámetros de entrada.

Con respeto.

En resumen, es sólo un error medio sobre todas las muestras, y no lo necesitamos... rezult devuelve sólo el error total, y luego se divide por el número de ejemplos de la muestra (esto se puede eliminar)

 
Maxim Dmitrievsky:

En resumen, es sólo un error promedio sobre todas las muestras, y no lo necesitas... rezult devuelve sólo el error total, y luego se divide por el número de ejemplos de la muestra

Por lo tanto, tienes que volver a la normalidad, lo que has hecho multiplicando por el divisor.

Т.е. итоговую ошибку нужно домножить на длину обучающей выборки умноженную на кол-во выходов (если 1 то выходы опускаем)



Con respeto.

 
Andrey Kisselyov:

Por lo tanto, hay que devolverlo a la normalidad, lo que has hecho multiplicando por el divisor.



Con respeto.


Es la sensación de retocar algo y luego alegrarse como un niño :)

 
Maxim Dmitrievsky:

La sensación que se tiene cuando se retoca algo y luego se goza como un niño :)

Busca en un armario y coge un caramelo de un jarrón.

Sinceramente.
 
Maxim Dmitrievsky:

En teoría, debería haber pocos errores en losbosques aleatorios, porque todas las variables se utilizan en los árboles de decisión y no hay ninguna restricción en el uso de la memoria como en las redes neuronales: el número de neuronas. Allí sólo se pueden utilizar operaciones separadas para "difuminar" el resultado, como la restricción de nivel, el recorte de árboles o el backgammon. No sé si la implementación de MQ de alglib tiene poda, backgammon sí.

//      R           -   percent of a training set used to build      |
//|                     individual trees. 0<R<=1.                    |
//|                     recommended values: 0.1 <= R <= 0.66.  

Si esta variable es menor que 1, el error debería aumentar.

Razón de la queja: