Que medida de erro de treinamento deve ser relatada para florestas aleatórias?

15

Atualmente, estou ajustando florestas aleatórias para um problema de classificação usando o randomForestpacote em R e não tenho certeza sobre como relatar erros de treinamento para esses modelos.

Meu erro de treinamento é próximo de 0% quando o computo usando as previsões que recebo com o comando:

predict(model, data=X_train)

Onde X_trainestão os dados de treinamento.

Em resposta a uma questão relacionada , eu li que um deve usar o out-of-bag (OOB) erro de treinamento como o erro de treinamento métrica para florestas aleatórias. Essa quantidade é calculada a partir de previsões obtidas com o comando:

predict(model)

Nesse caso, o erro de treinamento do OOB está muito mais próximo do erro médio do teste de 10 CV, que é de 11%.

Estou pensando:

  1. É geralmente aceito relatar erro de treinamento OOB como a medida de erro de treinamento para florestas aleatórias?

  2. É verdade que a medida tradicional de erro de treinamento é artificialmente baixa?

  3. Se a medida tradicional de erro de treinamento for artificialmente baixa, então quais são as duas medidas que posso comparar para verificar se a RF está ajustando demais?

Berk U.
fonte

Respostas:

10

Para adicionar à resposta de @Soren H. Welling.

1. É geralmente aceito relatar erro de treinamento OOB como a medida de erro de treinamento para florestas aleatórias?

Não. O erro OOB no modelo treinado não é o mesmo que erro de treinamento. Pode, no entanto, servir como uma medida de precisão preditiva.

2. É verdade que a medida tradicional de erro de treinamento é artificialmente baixa?

Isso é verdade se estivermos executando um problema de classificação usando as configurações padrão. O processo exato é descrito em uma postagem no fórum por Andy Liaw , que mantém o randomForestpacote em R, da seguinte maneira:

Na maioria das vezes, o desempenho no conjunto de treinamento não faz sentido. (Esse é o caso da maioria dos algoritmos, mas principalmente da RF.) Na configuração padrão (e recomendada), as árvores crescem no tamanho máximo, o que significa que é muito provável que exista apenas um ponto de dados na maioria dos nós terminais e o a previsão nos nós terminais é determinada pela classe majoritária no nó ou no único ponto de dados. Suponha que esse seja o caso o tempo todo; isto é, em todas as árvores, todos os nós terminais têm apenas um ponto de dados. Um ponto de dados específico seria "in-bag" em cerca de 64% das árvores da floresta, e cada uma dessas árvores tem a previsão correta para esse ponto de dados. Mesmo que todas as árvores em que esses pontos de dados estejam fora do saco tenham fornecido a previsão errada, pelo voto da maioria de todas as árvores, você ainda recebe a resposta certa no final. Assim, basicamente, a previsão perfeita no conjunto de trens para RF é "por projeto".

nodesize > 1sampsize < 0.5N(xEu,yEu)

3. Se a medida tradicional de erro de treinamento for artificialmente baixa, quais são as duas medidas que posso comparar para verificar se a RF está ajustando demais?

Se executarmos a RF com nodesize = 1e sampsize > 0.5, o erro de treinamento da RF sempre será próximo de 0. Nesse caso, a única maneira de saber se o modelo está se ajustando demais é manter alguns dados como um conjunto de validação independente. Podemos então comparar o erro de teste de 10 CV (ou o erro de teste OOB) com o erro no conjunto de validação independente. Se o erro de teste de 10 CV for muito menor que o erro no conjunto de validação independente, o modelo poderá estar sobreajustado.

Berk U.
fonte
2

[editado em 21.7.15 8:31 CEST]

Suponho que você usou o RF para classificação. Como nesse caso, o algoritmo produz árvores totalmente crescidas com nós terminais puros de apenas uma classe de destino.

predict(model, data=X_train)

Essa linha de codificação é como um cachorro perseguindo [~ 66%] da própria cauda. A previsão de qualquer amostra de treinamento é a classe da própria amostra de treinamento. Para a regressão, o RF para se o nó tiver 5 ou menos amostras ou se o nó for puro. Aqui, o erro de previsão será pequeno, mas não 0%.

No aprendizado de máquina, geralmente trabalhamos com grandes espaços de hipóteses. Isso significa que sempre haverá muitas hipóteses / explicações / modelos ainda não falsificados na estrutura de dados do nosso conjunto de treinamento. Na estatística clássica, o espaço das hipóteses costuma ser pequeno e, portanto, o ajuste direto ao modelo é informativo de acordo com alguma teoria de probabilidade assumida. No aprendizado de máquina, a falta de adaptação direta se relaciona com o viés do modelo. Viés é a "inflexibilidade" do modelo. Isso nãode qualquer maneira, fornece uma aproximação do poder de generalização (a capacidade de prever novos eventos). Para modelos algorítmicos, a validação cruzada é a melhor ferramenta para aproximar o poder de generalização, pois nenhuma teoria é formulada. No entanto, se as suposições do modelo de amostragem independente falharem, o modelo poderá ser inútil de qualquer maneira, mesmo quando uma validação cruzada bem executada sugerir o contrário. No final, a prova mais forte é prever satisfatoriamente um número de conjuntos de testes externos de várias origens.

Voltar ao CV: Fora da bolsa geralmente é um tipo de currículo aceito. Pessoalmente, eu considero que o OOB-CV fornece resultados semelhantes aos do CV 5 vezes, mas isso é um incômodo muito pequeno. Se compararmos, digamos RF para SVM, o OOB-CV não é útil, pois normalmente evitamos colocar SVM em sacos. Em vez disso, o SVM e o RF seriam incorporados exatamente no mesmo esquema de validação cruzada, por exemplo, 10 vezes 10 repetições com partições correspondentes para cada repetição. Qualquer etapa de engenharia de recursos também costuma ser necessária para validação cruzada. Se, para manter as coisas limpas, toda a linha de tubulação de dados pudesse ser incorporada no CV.

Se você ajustar seu modelo com seu conjunto de testes (ou validação cruzada), estará inflando novamente seu espaço de hipóteses e o desempenho da previsão validada provavelmente será otimista demais. Em vez disso, você precisará de um conjunto de calibração (ou loop CV de calibração) para ajustar e um conjunto de validação de teste (ou loop CV de validação) para avaliar seu modelo ideal final.

No sentido extremo, sua pontuação de validação só será imparcial se você nunca agir sobre esse resultado, quando o vir. Este é o paradoxo da validação, porque é que obteríamos um conhecimento que só é verdadeiro se você não agir sobre ele. Na prática, a comunidade aceita de bom grado algum viés de publicação, em que os pesquisadores que obtiveram uma validação excessivamente otimista aleatoriamente têm mais probabilidade de publicar do que aqueles que, infelizmente, obtêm uma validação excessivamente pessimista. Portanto, às vezes, por que não é possível reproduzir outros modelos?

Soren Havelund Welling
fonte
Obrigado por isso. Duas perguntas: (1) Como a previsão de qualquer amostra de treinamento é da classe da própria amostra de treinamento? Deve haver árvores que não usem a amostra de treinamento usada no processo de votação por maioria não? (2) Então, como você avaliaria se uma medida de RF está ajustada?
Berk U.
(1) bem, sim, eu fui um pouco rápido lá, editei a resposta. Qualquer amostra será inbag em ~ 66% das árvores. Se uma amostra em uma árvore estava na bolsa durante o treinamento, ela terminará no mesmo nó durante a previsão em ~ 66%, e isso é suficiente para obter o voto da maioria todas as vezes. Confirme isso diminuindo o tamanho da amostra para, por exemplo, 30% das amostras de trem e observe um aumento do erro de classificação de 0%. (2) Eu acho que respondi isso. A RF por si só não é super adequada, mas é possível criar um contexto durante, por exemplo, o ajuste, onde você obterá um resultado OOB-CV otimista demais. Incorpore todo o processo em um novo currículo para ter certeza.
Soren Havelund Welling