Nota: O caso é n >> p
Estou lendo Elementos de aprendizagem estatística e há várias menções sobre a maneira "correta" de fazer a validação cruzada (por exemplo, página 60, página 245). Especificamente, minha pergunta é como avaliar o modelo final (sem um conjunto de testes separado) usando o CV k-fold ou o bootstrapping quando houver uma pesquisa de modelo? Parece que na maioria dos casos (algoritmos ML sem seleção de recurso incorporado) haverá
- Uma etapa de seleção de recurso
- Uma etapa de seleção de meta-parâmetro (por exemplo, o parâmetro de custo no SVM).
Minhas perguntas:
- Vi que a etapa de seleção de recursos pode ser realizada onde a seleção de recursos é feita em todo o conjunto de treinamento e mantida de lado. Em seguida, usando o CV com dobras k, o algoritmo de seleção de recursos é usado em cada dobra (obtendo diferentes recursos, possivelmente escolhidos a cada vez) e a média do erro. Em seguida, você usaria os recursos escolhidos usando todos os dados (que foram reservados) para treinar o modo final, mas utilizaria o erro da validação cruzada como uma estimativa do desempenho futuro do modelo. ISSO ESTÁ CORRETO?
- Quando você está usando a validação cruzada para selecionar os parâmetros do modelo, como estimar o desempenho do modelo posteriormente? É O MESMO PROCESSO DO Nº 1 ACIMA OU DEVE USAR O CV NESTADO COMO MOSTRADO NA PÁGINA 54 ( pdf ) OU ALGO MAIS?
- Quando você está executando as duas etapas (configuração de recurso e parâmetro) ..... então o que você faz? loops aninhados complexos?
- Se você tiver uma amostra separada, a preocupação desaparece e você pode usar a validação cruzada para selecionar recursos e parâmetros (sem se preocupar, pois sua estimativa de desempenho será proveniente de uma configuração de retenção)?
Respostas:
O importante a lembrar é que, para a validação cruzada fornecer uma estimativa de desempenho (quase) imparcial, todas as etapas envolvidas no ajuste do modelo também devem ser executadas independentemente em cada dobra do procedimento de validação cruzada. A melhor coisa a fazer é visualizar a seleção de recursos, a configuração de meta / hiperparâmetros e otimizar os parâmetros como partes integrais do ajuste do modelo e nunca executar nenhuma dessas etapas sem executar as outras duas.
O viés otimista que pode ser introduzido ao se afastar dessa receita pode ser surpreendentemente grande, como demonstrado por Cawley e Talbot , onde o viés introduzido por uma partida aparentemente benigna foi maior do que a diferença no desempenho entre os classificadores concorrentes. Os piores protocolos tendenciosos ainda favorecem os modelos ruins mais fortemente, pois são mais sensíveis ao ajuste de hiperparâmetros e, portanto, são mais propensos a ajustar demais o critério de seleção de modelos!
Respostas a perguntas específicas:
O procedimento na etapa 1 é válido porque a seleção de recursos é realizada separadamente em cada dobra; portanto, a validação cruzada é um procedimento completo usado para ajustar-se ao modelo final. A estimativa de validação cruzada terá um leve viés pessimista, pois o conjunto de dados para cada dobra é um pouco menor que o conjunto de dados inteiro usado no modelo final.
Para 2, como a validação cruzada é usada para selecionar os parâmetros do modelo, você precisa repetir esse procedimento independentemente em cada dobra da validação cruzada usada para estimativa de desempenho, e você acaba com a validação cruzada aninhada.
Para 3, basicamente, sim, você precisa fazer a validação cruzada aninhada. Essencialmente, você precisa repetir em cada dobra da validação cruzada mais externa (usada para estimativa de desempenho) tudo o que você pretende fazer para se ajustar ao modelo final.
Para 4 - sim, se você tiver um conjunto de retenção separado, isso fornecerá uma estimativa imparcial do desempenho sem a necessidade de uma validação cruzada adicional.
fonte
Eu tenho feito uma extensa análise de validação cruzada em um conjunto de dados que custa milhões para adquirir e não há um conjunto de validação externa disponível. Nesse caso, realizei uma validação cruzada aninhada extensiva para garantir a validade. Selecionei recursos e parâmetros otimizados apenas dos respectivos conjuntos de treinamento. Isso é computacionalmente caro para grandes conjuntos de dados, mas é o que eu tenho que fazer para manter a validade. No entanto, existem complicações que acompanham ... por exemplo, diferentes recursos são selecionados em cada conjunto de treinamento.
Portanto, minha resposta é que, nos casos em que você não tem acesso viável a um conjunto de dados externo, esse é um caminho razoável. Quando você tem um conjunto de dados externo, pode ir para a cidade da maneira que desejar no conjunto de dados principal e, em seguida, testar uma vez no conjunto de dados externo.
fonte