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
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 :)
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. |//+------------------------------------------------------------------+staticvoid CDForest::DFBuildRandomDecisionForest(CMatrixDouble &xy,
constint npoints,
constint nvars,
constint nclasses,
constint ntrees,
constdouble 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
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)
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 то выходы опускаем)
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.
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.
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 :)
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 :)
significa _Punto (puntos) como puntos adivinados de ... o viceversa.
Saludos.
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
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 clarosNo, aquí npuntos significa la longitud del vector de entrada :)
Con respeto.
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)
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.
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 :)
La sensación que se tiene cuando se retoca algo y luego se goza como un niño :)
Sinceramente.
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í.
Si esta variable es menor que 1, el error debería aumentar.