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
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 :)
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. |//+------------------------------------------------------------------+staticvoid CDForest::DFBuildRandomDecisionForest(CMatrixDouble &xy,
constint npoints,
constint nvars,
constint nclasses,
constint ntrees,
constdouble 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
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)
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 то выходы опускаем)
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.
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.
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 :)
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 :)
significa _Ponto (pontos) como pontos adivinhados de ... ou vice versa.
Cumprimentos.
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
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 clarosNão, aqui n pontos significa o comprimento do vector de entrada :)
Com todo o respeito.
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)
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.
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 :)
A sensação de quando se afina algo e depois se regozija como uma criança :)
Sinceramente.
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.
Se esta variável for menor que 1, o erro deve aumentar.