Validação cruzada: dobra K versus subamostra aleatória repetida

10

Gostaria de saber que tipo de validação cruzada de modelo escolher para o problema de classificação: dobra K ou subamostragem aleatória (amostragem de inicialização)?

Meu melhor palpite é usar 2/3 do conjunto de dados (que é ~ 1000 itens) para treinamento e 1/3 para validação.

Nesse caso, a dobra em K fornece apenas três iterações (dobras), o que não é suficiente para ver um erro médio estável.

Por outro lado, não gosto do recurso de subamostragem aleatória: alguns itens nunca serão selecionados para treinamento / validação e outros serão usados ​​mais de uma vez.

Algoritmos de classificação utilizados: floresta aleatória e regressão logística.

IharS
fonte
11
Acho que uma pergunta anterior é: essa seleção não depende do algoritmo (principalmente seu comportamento) sendo avaliado?
Rubens
11
@Rubens, eu atualizei a pergunta: Estou intersted em RF e regressão logística
IharS

Respostas:

7

Se você tem um número adequado de amostras e deseja usar todos os dados, a validação cruzada com dobra k é o caminho a percorrer. Ter ~ 1.500 parece muito, mas se é adequado para a validação cruzada k-fold também depende da dimensionalidade dos dados (número de atributos e número de valores de atributos). Por exemplo, se cada observação tiver 100 atributos, 1.500 observações serão baixas.

Outra desvantagem potencial da validação cruzada k-fold é a possibilidade de um único outlier extremo distorcer os resultados. Por exemplo, se você tem um erro externo extremo que pode influenciar fortemente o seu classificador, em uma validação cruzada de 10 vezes, 9 das 10 partições serão afetadas (embora para florestas aleatórias, eu não acho que você teria esse problema )

A subamostragem aleatória (por exemplo, amostragem de autoinicialização) é preferível quando você está subamostrado ou quando tem a situação acima, em que não deseja que cada observação apareça em dobras k-1.

Bogatron
fonte
4

Acho que você diz que deseja usar a validação cruzada três vezes porque conhece alguma coisa sobre seus dados (que usar k = 10 causaria super adequação? Estou curioso para o seu raciocínio). Não tenho certeza de que você saiba disso; caso contrário, pode simplesmente usar um k maior.

Se você ainda acha que não pode usar a validação cruzada de dobras k padrão, pode modificar um pouco o algoritmo: diga que divide os dados em 30 dobras e sempre use 20 para treinamento e 10 para avaliação (e depois mude para cima uma dobra e use o primeiro e o último 9 como avaliação e o restante como treinamento). Isso significa que você pode usar todos os seus dados.

Quando uso a validação cruzada k-fold, normalmente executo o processo várias vezes com uma randomização diferente para garantir que eu tenha dados suficientes; caso contrário, você verá desempenhos diferentes, dependendo da randomização. Nesses casos, eu sugeriria amostragem. O truque então é fazê-lo com bastante frequência.

Rhand
fonte