Parece que o erro de validação cruzada k-fold é muito sensível ao tipo de medida de desempenho. Ele também possui um erro porque os conjuntos de treinamento e validação são escolhidos aleatoriamente.
Acho que você descobriu a alta variação das medidas de desempenho que são proporções de contagens de casos, como . Você tenta estimar, por exemplo, a probabilidade de seu classificador retornar uma resposta correta. Do ponto de vista estatístico, isso é descrito como um estudo de Bernoulli, levando a uma distribuição binomial. Você pode calcular intervalos de confiança para distribuições binomiais e descobrirá que elas são muito amplas. Obviamente, isso limita sua capacidade de fazer comparação de modelos.# previsões corretas# casos de teste
Com os esquemas de validação de reamostragem, como a validação cruzada, você tem uma fonte adicional de variação: a instabilidade de seus modelos (à medida que você constrói modelos substitutos durante cada execução de CV)k
Além disso, alterar o número de dobras fornece valores de parâmetros ótimos diferentes.
Isso é esperado devido à variação. Você pode ter um efeito adicional aqui: libSVM divide os dados apenas uma vez se você usar a validação cruzada interna para ajuste. Devido à natureza dos SVMs, se você construiu o SVM com dados de treinamento idênticos e varia lentamente os parâmetros, verá que os vetores de suporte (e consequentemente a precisão) saltam: desde que os parâmetros do SVM não sejam muito diferentes, ainda assim escolha os mesmos vetores de suporte. Somente quando os paraters são alterados o suficiente, resultam subitamente diferentes vetores de suporte. Portanto, avaliar a grade de parâmetros SVM com exatamente as mesmas divisões de validação cruzada pode ocultar a variabilidade, que você vê entre diferentes execuções.
IMHO, o problema básico é que você faz uma pesquisa na grade, que é uma otimização que depende de um comportamento razoavelmente suave do seu alvo funcional (precisão ou qualquer outra coisa que você use). Devido à alta variação de suas medidas de desempenho, essa suposição é violada. A dependência "irregular" do modelo SVM também viola essa suposição.
As métricas de precisão para validação cruzada podem ser excessivamente otimistas. Geralmente, qualquer coisa com uma validação cruzada dupla me dá 100% de precisão. Além disso, a taxa de erro é discreta devido ao pequeno tamanho da amostra. A seleção de modelos geralmente fornece a mesma taxa de erro em todos ou na maioria dos valores de parâmetros.
Isso é esperado, dados os problemas gerais da abordagem.
No entanto, geralmente é possível escolher valores de parâmetros realmente extremos onde o classificador se decompõe. IMHO, o intervalo de parâmetros em que os SVMs funcionam bem é uma informação importante.
Em qualquer caso, você precisa absolutamente de uma validação externa (dupla / aninhada) do desempenho do modelo escolhido como 'melhor'.
Eu provavelmente faria várias execuções / repetições / iterações de uma validação cruzada externa ou uma validação externa fora da inicialização e forneceria a distribuição de
- hiperparâmetros para o "melhor" modelo
- desempenho relatado do ajuste
- desempenho observado da validação externa
A diferença entre os dois últimos é um indicador de ajuste excessivo (por exemplo, devido a "skimming" da variação).
Ao escrever um relatório, como eu saberia que uma classificação é 'boa' ou 'aceitável'? Em campo, parece que não temos algo parecido com uma qualidade de ajuste ou limite de valor-p que é comumente aceito. Como estou adicionando os dados de forma iterativa, gostaria de saber quando parar - o que é um bom N em que o modelo não melhora significativamente?
(O que você está adicionando? Casos ou variáveis / recursos?)
Antes de tudo, se você fizer uma modelagem iterativa, precisará relatar que, devido ao seu procedimento de ajuste, seu desempenho não deve ser levado a sério, pois está sujeito a um viés otimista. A melhor alternativa é fazer uma validação do modelo final. No entanto, os dados de teste devem ser independentes de todos os dados que já foram treinados ou do seu processo de decisão para a modelagem (portanto, você pode não ter esses dados).