Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 486

 
Não sei como conta, o meu conta a percentagem de opções sem adivinhação.
Por exemplo, nesta variante foram 1000 entradas das quais 600 trabalharam no mais (eu adivinhei) 400 trabalharam no vermelho (eu adivinhei). portanto o erro é o número de opções não adivinhadas em relação a todas as variantes, neste exemplo, erro = 400/1000 = 0,4

Com todo o respeito.
 
Andrey Kisselyov:
Não sei como funciona para outra pessoa, mas para mim conta a percentagem de variantes sem sorte.
Por exemplo, nesta variante foram 1000 entradas das quais 600 trabalharam no mais (eu adivinhei) 400 trabalharam no vermelho (eu não adivinhei). Então o erro é o número de variantes não adivinhadas em relação a todas as variantes, neste exemplo, erro = 400/1000 = 0,4

Com todo o respeito.

Aqui eu entendo que o erro final é dividido pelo número de amostras multiplicado pelo número de entradas por algum motivo, se você o remover:

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

Se o multiplicar de volta, obtém um resultado bastante inteligível, por exemplo 0,5578064232767638 :)


 
Maxim Dmitrievsky:

Aqui eu entendo que o erro final é dividido pelo número de amostras multiplicado pelo número de entradas por algum motivo, se você o remover:

Se o multiplicar, o resultado é bastante claro, por exemplo 0,5578064232767638 :)


muito provavelmente
return(result/(npoints*df.m_nclasses));
significa _Ponto (pontos) como pontos adivinhados de ... ou vice versa.

Cumprimentos.
 
Andrey Kisselyov:
muito provavelmente
Significa _Ponto (pontos) como pontos adivinhados de ... ou vice versa.

Com os melhores cumprimentos.

Não, aqui n pontos significa o comprimento do vector de entrada :)

Embora nclasses seja o número de saídas, 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)

Portanto, o erro final deve ser multiplicado pela duração da amostra de treinamento multiplicada pelo número de saídas (se 1, então as saídas devem ser omitidas).

Pode ser útil para alguém

Espero não ter misturado nada e tê-lo feito bem :) pelo menos os valores de erro são claros
 
Maxim Dmitrievsky:

Não, aqui n pontos significa o comprimento do vector de entrada :)

Então você precisa olhar o que é rezult , uma vez que o divisor é parâmetros de entrada.

Com todo o respeito.
 
Andrey Kisselyov:
Se este for o caso, então eu preciso ver o que é rezult, já que o divisor é o parâmetro de entrada.

Com todo o respeito.

Em suma, é apenas um erro médio em todas as amostras, e não precisamos dele... rezult retorna apenas o erro total, e depois é dividido pelo número de exemplos na amostra (este pode ser removido)

 
Maxim Dmitrievsky:

Em resumo, é apenas um erro médio em todas as amostras, e não precisa dele... rezult retorna apenas o erro total, e depois é dividido pelo número de exemplos na amostra

Então, você precisa voltar ao normal, o que você fez multiplicando pelo divisor.

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



Com todo o respeito.

 
Andrey Kisselyov:

Portanto, precisa de ser trazido de volta ao normal, o que você fez multiplicando pelo divisor.



Com todo o respeito.


É a sensação de afinar algo e depois regozijar-se como uma criança :)

 
Maxim Dmitrievsky:

A sensação de quando se afina algo e depois se regozija como uma criança :)

Olha num armário e tira um doce de uma jarra.

Sinceramente.
 
Maxim Dmitrievsky:

Em teoria, deve haver pouco erro emflorestas aleatórias, pois todas as variáveis são usadas em árvores de decisão e não há restrição no uso de memória como nas redes neurais - o número de neurônios. Lá você só pode usar operações separadas para "desfocar" o resultado, tais como restrição de nível, corte de árvores ou gamão. Não sei se a implementação da MQ de algibeira tem poda, o backgammon tem.

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

Se esta variável for menor que 1, o erro deve aumentar.