Eu tenho um conjunto de dados pequeno e desequilibrado (70 positivo, 30 negativo) e ando brincando com a seleção de modelos para parâmetros SVM usando BAC (precisão balanceada) e AUC (área sob a curva). Usei pesos de classe diferentes para o parâmetro C no libSVM para compensar os dados desequilibrados, seguindo os conselhos aqui ( Treinamento de uma árvore de decisão contra dados desequilibrados ).
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. Por exemplo, se eu repetir o BAC duas vezes com diferentes sementes aleatórias, obteremos erros diferentes e, posteriormente, valores ideais de parâmetros diferentes. Se eu calcular a média de pontuações repetidas no BAC, a média de 1000 vezes me fornecerá valores ótimos de parâmetros diferentes da média de 10000 vezes. Além disso, alterar o número de dobras fornece valores de parâmetros ótimos diferentes.
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.
Ao escrever um relatório, como eu saberia que uma classificação é 'boa' ou 'aceitável'? Em campo, parece que não temos algo como um ajuste de qualidade ou um limiar de valor-p que seja comumente aceito. Como estou adicionando os dados de forma iterativa, gostaria de saber quando parar - o que é um bom N onde o modelo não melhora significativamente?
Dadas as questões descritas acima, parece que a precisão não pode ser facilmente comparada entre as publicações, enquanto a AUC foi descrita como um mau indicador de desempenho (veja aqui , ou aqui , por exemplo).
Algum conselho sobre como resolver qualquer um desses 3 problemas?
fonte
Respostas:
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
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.
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
A diferença entre os dois últimos é um indicador de ajuste excessivo (por exemplo, devido a "skimming" da variação).
(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).
fonte
Mais simples que o BIR são as regras de pontuação logarítmica ou quadrática (Brier). Essas são pontuações adequadas que, diferentemente da proporção classificada corretamente, não darão origem a um modelo falso durante a otimização.
fonte
Como você ressalta, a precisão preditiva e a AUC são limitadas em certos aspectos. Eu daria uma chance ao Bayesian Information Reward (BIR), que deveria dar uma avaliação mais sensível de quão bem ou mal está o seu classificador e como isso muda conforme você ajusta seus parâmetros (número de dobras de validação, etc.).
A intuição do BIR é a seguinte: um apostador é recompensado não apenas por identificar os vencedores e perdedores (zeros e zeros), mas mais importante ainda por identificar as probabilidades apropriadas. Além disso, dá um passo à frente e compara todas as previsões com as probabilidades anteriores.
Digamos que você tenha uma lista de 10 jogos do Arsenal (time de futebol da Inglaterra) com possíveis resultados: ou . A fórmula para a classificação binária gratificante por jogo é:L o s eWin Lose
onde é a previsão do seu modelo para um jogo específico do Arsenal é a probabilidade anterior de o Arsenal vencer um jogo. O ponto de partida é: se eu souber de antemão que e meu modelo de preditor produziu , mesmo que sua previsão esteja correta, ele será recompensado com 0, pois não está transmitindo nenhuma informação nova. Como observação, você trata as classificações corretas e incorretas de maneira diferente, conforme mostrado nas equações. Como resultado, com base em se a previsão está correta ou incorreta, o BIR para uma única previsão pode assumir um valor entre .p ′ p ′ = 0,6 p = 0,6 ( - i n f , 1 ]p p′ p′=0.6 p=0.6 (−inf,1]
O BIR não se limita às classificações binárias, mas também é generalizado para problemas de classificação multinomial.
fonte