Por que a função de inicialização do scikit-learn reanalisa o conjunto de testes?

15

Ao usar o bootstrapping para avaliação do modelo, sempre achei que as amostras prontas para uso foram usadas diretamente como conjunto de teste. No entanto, esse parece não ser o caso da abordagem preterida do scikit-learnBootstrap , que parece criar o conjunto de testes a partir do desenho com a substituição do subconjunto de dados pronto para uso. Qual é o raciocínio estatístico por trás disso? Existem cenários específicos em que essa técnica é melhor do que apenas avaliar a amostra fora da bolsa ou vice-versa?

rabo de peixe
fonte
validação cruzada? reamostragem?
EngrStudent
Se você está se referindo à tag, ela não foi adicionada por mim. Estou inicializando como uma alternativa ao CV, na verdade.
Gibberfish #
Eu acho que você não entendeu. Na validação cruzada, eles repetem o processo várias vezes em um subconjunto dos dados e analisam a variação nos resultados ou nos parâmetros do modelo. Nesse caso, a própria variação do parâmetro informa a qualidade do ajuste, e não necessariamente o erro OOB. Eu não estou familiarizado com a biblioteca em particular, então apenas deixei um comentário com a ideia.
EngrStudent

Respostas:

3

Amostras de bootstrap são usadas para avaliar o desempenho do algoritmo por muitas iterações. Enquanto isso, o desempenho em conjuntos alterados aleatoriamente é avaliado.

Por outro lado, ao executar, por exemplo, a validação cruzada com 10 dobras, você está executando apenas 10 iterações em diferentes conjuntos de dados de trem e teste.

n=20i=10,000

O link que você postou está inativo, então eu adicionei a descrição da função na versão atual (0.14) do sklearn

Descrição do método

Amostragem aleatória com iterador de validação cruzada de substituição Fornece índices de trem / teste para dividir dados em conjuntos de testes de trem enquanto reamostra os tempos de entrada n_iter: cada vez que uma nova divisão aleatória dos dados é realizada e as amostras são coletadas (com substituição) de cada lado da divisão para criar os conjuntos de treinamento e teste. Nota: ao contrário de outras estratégias de validação cruzada, o bootstrapping permitirá que algumas amostras ocorram várias vezes em cada divisão. No entanto, uma amostra que ocorre na divisão do trem nunca ocorrerá na divisão do teste e vice-versa. Se você deseja que cada amostra ocorra no máximo uma vez, provavelmente deve usar a validação cruzada ShuffleSplit.

MaxBenChrist
fonte
2

Talvez você tenha gostado de algo. Parece que outras pessoas puxaram o mesmo encadeamento e Bootstrapforam preteridas em favor de um uso mais intencional do resamplemétodo com as sklearn.cross_validationabordagens testadas e verdadeiras como StratifiedKFold.

fogão
fonte