Em primeiro lugar, desculpas por postar uma pergunta que já foi discutida extensivamente aqui , aqui , aqui , aqui , aquie para reaquecer um tópico antigo. Eu sei que o @DikranMarsupial já escreveu sobre esse tópico em posts e artigos de periódicos, mas ainda estou confuso e, a julgar pelo número de posts semelhantes aqui, ainda é algo que outros lutam para entender. Devo também afirmar que recebi contraditórios sobre este tópico, o que aumentou minha confusão. Você também deve saber que sou originalmente físico e não estatístico; portanto, minha experiência no domínio aqui é um pouco limitada. Estou escrevendo um jornal em que quero usar o CV aninhado para estimar o desempenho que posso esperar do meu modelo final. No meu domínio, este é o primeiro. (Quase nunca usamos qualquerforma de currículo robusto em meu campo, mas alegre os trabalhos com resultados de estudos usando redes neurais e árvores de decisão aprimoradas!) Portanto, é muito importante que eu tenha um entendimento muito completo e claro para não estragar e propagar um procedimento incorreto para minha comunidade que pode levar anos para desaprender! Obrigado! Com a pergunta ...
Como crio o modelo final após a validação cruzada aninhada?
Estou treinando um modelo glmnet simples com regularização L1 e L2. É rápido, simples e interpretável. Realizo as centralizações, redimensionamentos e transformações de Box-Cox para que as distribuições de recursos sejam centradas na média, padronizadas e parecidas com as de Gauss. Realizo esta etapa na validação cruzada, para evitar vazamento de informações. Simplesmente porque meu hardware é incrivelmente lento e não tenho acesso a mais músculos da CPU, também realizo uma seleção rápida de recursos baseados em filtro no CV após o pré-processamento dos recursos. Estou usando a pesquisa aleatória em grade para escolher os hiperparâmetros alfa e lambda. Eu entendo que não deveriaLoop CV para obter essa estimativa. I entender que o circuito de CV interior é usado para a selecção do modelo (neste caso, os hiperparâmetros óptimas) e que o circuito externo é usado para avaliação do modelo , ou seja, o CV interior e exterior têm duas finalidades diferentes, que muitas vezes são erroneamente confundidas. (Como estou indo até agora?)
Agora, os links que eu publiquei sugerem que "a maneira de pensar na validação cruzada é estimar o desempenho obtido usando um método para construir um modelo, em vez de estimar o desempenho de um modelo". Dado isso, como devo interpretar os resultados do procedimento de CV aninhado?
Os conselhos que li parecem indicar o seguinte --- corrija-me se estiver errado: o CV interno faz parte do mecanismo que permite selecionar os hiperparâmetros alfa e lambda ideais do meu modelo glmnet. O CV externo informa a estimativa que posso esperar obter do modelo final se eu aplicar o procedimento exatamente como usado no CV interno, incluindo ajuste de hiperparâmetro e usar todo o conjunto de dados para construir o modelo final. Ou seja, o ajuste do hiperparâmetro faz parte do "método de construção do modelo". Isso é correto ou não? Porque é isso que me confunde. Em outros lugares, vi que o procedimento para construir o modelo final a ser implantado envolve treinamento em todo o conjunto de dados usando os valores fixosdos hiperparâmetros que foram escolhidos usando CV. Aqui, o "método para construir o modelo" não inclui ajuste. Então, qual é? Em algum momento, os hiperparâmetros ideais são escolhidos e corrigidos para a construção do modelo final! Onde? Quão? Se meu loop interno é um CV de 5 vezes e meu loop externo é um CV de 5 vezes, e eu seleciono, digamos, 100 pontos para testes como parte da pesquisa aleatória em grade no CV interno, quantas vezes eu realmente treino o glmnet modelo? (100 * 5 * 5) + 1 para a compilação final, ou existem mais etapas que eu desconheço?
Basicamente, preciso de uma descrição muito clara de como interpretar a estimativa de desempenho do CV aninhado e como construir o modelo final.
Eu também gostaria de saber o procedimento apropriado para selecionar o limite de probabilidade para converter as pontuações de probabilidade do meu modelo glmnet final em rótulos de classe (binários) --- é necessário outro loop de CV?