A modelagem com florestas aleatórias requer validação cruzada?


23

Tanto quanto eu vi, as opiniões tendem a diferir sobre isso. As melhores práticas certamente ditariam a validação cruzada (especialmente se comparar RFs com outros algoritmos no mesmo conjunto de dados). Por outro lado, a fonte original afirma que o fato de o erro OOB ser calculado durante o treinamento do modelo é um indicador suficiente do desempenho do conjunto de testes. Até Trevor Hastie, em conversas relativamente recentes, afirma que "as florestas aleatórias fornecem validação cruzada gratuita". Intuitivamente, isso faz sentido para mim, se estiver treinando e tentando melhorar um modelo baseado em RF em um conjunto de dados.

Alguém pode apresentar os argumentos a favor e contra a necessidade de validação cruzada com florestas aleatórias?


As perguntas que buscam explícitas opiniões geralmente são desencorajadas nos sites de troca de pilhas, datascience.stackexchange.com/help/dont-ask , talvez você possa reformular a pergunta para exigir exemplos de apoio à experiência dos usuários? Ou procure uma base teórica para uma posição ou outra.
image_doctor

2
As florestas aleatórias têm menos probabilidade de superestimar os outros algoritmos de ML, mas a validação cruzada (ou alguma forma alternativa de avaliação) ainda deve ser recomendada.
David

Eu acho que você sholud fazer essa pergunta no SO estatístico: stats.stackexchange.com
Marcin Kosiński

Gostaria de afirmar @David ... de uma forma ou de outra, você fará validação cruzada.

Você poderia fornecer uma referência para a declaração reivindicada por Trevor Hastie?
Tipanverella 16/05

Respostas:


7

Por padrão, a floresta aleatória seleciona 2/3 dos dados para treinamento e descanso para testes de regressão e quase 70% dos dados para treinamento e descanso para testes durante a classificação.Por princípio, uma vez que randomiza a seleção de variáveis ​​durante cada divisão de árvore, não é propenso a super ajuste ao contrário No entanto, se você quiser usar o CV usando nfolds no sklearn, ainda poderá usar o conceito de conjunto de espera, como oob_score (out of bag) = True, que mostra o desempenho do modelo com ou sem o uso do CV. Portanto, em poucas palavras, usando oob_score = True com ou sem nfolds pode dizer se o CV é bom para seus dados.Geralmente, se o seu alvo está seguindo uma determinada distribuição e você não tem muitos dados de observação, o uso do CV não fornecerá muita melhoria.


5

Uma diferença importante é que a validação cruzada garante que todas as amostras apareçam nos conjuntos de treinamento e teste, para que 100% dos seus dados sejam usados ​​em algum momento para treinamento e teste.

Dependendo do tamanho do conjunto de dados, a inicialização, a amostragem com substituição e a ocorrência na floresta aleatória não garantirão que as divisões que as árvores veem conterão todas as instâncias. Se você tiver árvores suficientes em sua floresta, a estimativa OOB deverá convergir assintoticamente para o melhor valor da estimativa OOB.

A precisão de ambos os métodos dependerá, até certo ponto, dos dados, portanto, pode ser prudente comparar os dois métodos nos dados específicos que você tem à sua frente e verificar se as estimativas de CV e RF OOB fornecem valores semelhantes.

Caso contrário, valeria a pena explorar novas estimativas da taxa de erro real, talvez por valores muito mais altos de K no CV.


3

Eu fiz alguns testes em um conjunto de dados de 50k linhas, usando sklearn.RandomForestRegressor.

Recebo pontuações significativamente diferentes - estou usando um gini normalizado para a métrica - dependendo se eu uso rf.oob_prediction_(0,2927) ou um CV KFold (0,3258 para 7 dobras e 0,3236 para 3 dobras).

Com isso, parece que seu argumento sobre "especialmente se comparar RFs com outros algoritmos no mesmo conjunto de dados" é uma forte consideração para usar o CV manual, em vez de confiar na previsão do OOB.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.