Qual é o próximo passo após k fold CV?
Me deparei com esta vídeo aula https://www.youtube.com/watch?v=wjILv3-UGM8na validação cruzada k dobra (CV). O algoritmo dado na aula de vídeo é apresentado abaixo:
para k = 1: 5
treinar em todos, exceto k
obter modelo $M_{\tilde{k}}$
calcular a precisão em $k$ como $A_k$
fim
Calcule a precisão da validação cruzada final: $A = > \frac{1}{5}\sum_{k=1}^5 A_k$
Isso está muito claro para mim. Aqui$M$é, eu acho, apenas um único tipo de algoritmo de ML. No entanto, no registro de data e hora 6:35, o apresentador levanta a questão: o que fazemos com todos os 5 modelos diferentes que foram construídos? Segundo ele, ou combinamos todos os modelos e tomamos decisões com base neles ou escolhemos o melhor dos 5 modelos . Esta afirmação é verdadeira?
Em muitos sites, incluindo aqui (https://stats.stackexchange.com/questions/310953/doubt-about-k-fold-crossvalidation?noredirect=1&lq=1 ; https://stats.stackexchange.com/questions/11602/training-on-the-full-dataset-after-cross-validation e https://stats.stackexchange.com/questions/11602/training-on-the-full-dataset-after-cross-validation) e trabalhos de pesquisa, entendi que:
- para fazer o treinamento do modelo usando k fold CV, nós treinamos novamente em todo o conjunto de dados após o final do loop CV e esse é o modelo final.
- Não selecionamos nenhum modelo de dentro do loop CV se a ideia de fazer o treinamento CV for verificar a precisão do algoritmo de ML em todo o conjunto de dados.
- No entanto, se tivermos vários algoritmos de ML, como floresta aleatória, rede neural, SVM dentro do loop CV, então selecionamos o algoritmo com a maior precisão.
- Outra técnica, validação cruzada aninhada, é usada para ajuste de hiperparâmetros.
Meu entendimento está correto?
Respostas
Não assisti ao vídeo linkado, mas com base nas suas explicações: sim, o seu entendimento está correto.
Uma confusão comum é presumir que a validação cruzada é semelhante a um estágio de treinamento regular e, portanto, produz um modelo. Esta suposição está errada: o CV inclui treinamento / teste repetido com o objetivo de avaliar o método / parâmetros . A partir desse entendimento, segue-se que:
para fazer o treinamento do modelo usando k fold CV, treinamos novamente em todo o conjunto de dados após o final do loop CV e esse é o modelo final.
Sim, uma vez que queremos obter o modelo final o mais preciso possível, devemos usar todos os dados. Neste caso, o CV foi usado para calcular uma boa estimativa do desempenho.
Não selecionamos nenhum modelo de dentro do loop CV se a ideia de fazer o treinamento CV for verificar a precisão do algoritmo de ML em todo o conjunto de dados.
Correto, caso contrário, não adianta usar CV.
No entanto, se tivermos vários algoritmos de ML, como floresta aleatória, rede neural, SVM dentro do loop CV, então selecionamos o algoritmo com a maior precisão.
Qualquer caso em que vários métodos e / ou parâmetros estão sendo avaliados é um pouco mais complexo do que o caso normal de um único método: avaliar vários sistemas é por si só uma camada adicional de treinamento, no sentido de que selecionamos alguns parâmetros (normalmente os melhores modelo) com base nos dados. Isso significa que a seleção em si é baseada em todos os dados usados no estágio de CV, de modo que o desempenho CV do melhor modelo é semelhante a um desempenho obtido em um conjunto de treinamento. É por isso que é necessário outro conjunto de teste (ou CV aninhado) para obter o desempenho final do modelo. Uma maneira intuitiva de entender isso é imaginar avaliando, digamos, milhões de modelos com CV: a única maneira de saber se o melhor desempenho é devido ao acaso ou não é avaliar o modelo correspondente em algum conjunto de teste novo.
Nota: o caso de combinar as saídas de todos os modelos é uma história diferente, pois isso se resume a um único metamodelo.
No vídeo
eu acredito, no vídeo quando dizia que você tem 5 modelos treinados em 5 conjuntos de dados diferentes , é um pouco incorreto.
Você tem um modelo treinado em 5 conjuntos de dados. Portanto, você tem 5 modelos treinados.
Em seguida, ele sugeriu que escolher um modelo baseado em votar etc. Isto é como Ensemble modelos trabalhar, mas Cross-validação não é para o processo de Ensembling os modelos
Por CV K-Fold
objetivo chave de CV K-Fold é fornecer uma estimativa confiável de erro de teste com os dados do trem disponíveis .
Em uma abordagem de divisão simples, podemos ter a sorte de o conjunto de validação conter exemplos mais fáceis que levam a uma avaliação superotimista do modelo .
Ou podemos ter azar quando o conjunto de validação contém exemplos mais difíceis e o desempenho do modelo é subestimado.
Não se baseia apenas em uma estimativa do erro do modelo, mas sim em um número (K) de estimativas.
O ponto mais importante a ter em mente é que você ainda está trabalhando no conjunto de dados do trem.
Com essa abordagem, você tem mais certeza de que a pontuação do treinamento é a melhor (confiabilidade) que você pode ter antes de verificá-la nos dados de teste.
Portanto, você pode ter mais confiança na configuração do modelo (hiperparâmetro).
Como esses ainda são os dados de treinamento, você deve treinar o modelo com os hiperparâmetros identificados em todo o conjunto de dados.
No entanto, se tivermos vários algoritmos de ML, como floresta aleatória, rede neural, SVM dentro do loop CV, então selecionamos o algoritmo com a maior precisão
Não acho que podemos ter vários modelos dentro de um K-Fold. Se queremos dizer repetir o k-fold em vários modelos em um loop simples. Então, podemos escolher o modelo com a pontuação mais alta se "pontuação" for o único critério de avaliação.