Distribuição normal e floresta aleatória

Oct 29 2020

Eu tenho uma grande tabela no dataframe (600k linhas) que tem a coluna y (a variável que quero prever) e outras 4 outras colunas que são o X. Eu executei o regressor RF e obtive o núcleo de 0,87 quando o executei no treinar e testar.

No entanto, quando tentei prever outro conjunto de dados (que é muito semelhante, com 1 milhão de linhas) , obtive uma pontuação de 0,65. Então eu presumi que fosse um ajuste excessivo. quando tentei entender por que isso acontece, voltei para a distribuição da coluna y, que se parece com isto:

minha pergunta é, será que porque meus dados não têm distribuição normal (ou muito distorcida ...) o desempenho do meu modelo é ruim? Todas as variáveis ​​precisam ter distribuição normal? como a pontuação da regeneração aleatória da floresta é calculada? o valor id é 0,25 e a previsão é 0,26. Isso conta como uma previsão correta?

Respostas

1 MykolaZotko Oct 29 2020 at 20:56

Se você usar algoritmos baseados em árvore, como florestas aleatórias, a distribuição de dados não deve ser um problema. Algoritmos lineares são mais dependentes da distribuição de suas variáveis. Para verificar se você superajustar pode tentar prever seus dados de treinamento e comparar o resultado com os dados de teste. A pontuação depende da sua avaliação métrica. Se você usar, scikit-learnobterá R ^ 2 como sua métrica.

O coeficiente R ^ 2 é definido como (1 - u / v), onde u é a soma residual dos quadrados ((y_true - y_pred) ** 2) .sum () ev é a soma total dos quadrados ((y_true - y_true.mean ()) ** 2) .sum ().