Como comparar estatisticamente o desempenho dos classificadores de aprendizado de máquina?


29

Com base na precisão estimada da classificação, quero testar se um classificador é estatisticamente melhor em um conjunto básico do que outro classificador. Para cada classificador, seleciono uma amostra de treinamento e teste aleatoriamente no conjunto base, treino o modelo e testo o modelo. Faço isso dez vezes para cada classificador. Portanto, tenho dez medições de precisão da classificação estimada para cada classificador. Como testar estatisticamente se o é um classificador melhor que o no conjunto de dados base. Qual teste t é apropriado usar?classifier1classifier2


Você testou os classificadores nas mesmas amostras? ou seja, amostra1, c1 (amostra1), c2 (amostra1)? Ou você usou amostras diferentes para cada classificador?
precisa

O teste t emparelhado seria apropriado nesse cenário.
GEL

1
@lewellen: a precisão é uma proporção: os testes t geralmente não são adequados.
cbeleites suporta Monica

3
@ JohnMoeller: "diferença de proporções" seria um termo de pesquisa, independente ou dependente que ainda não sabemos. Se estiver emparelhado: teste de McNemar. Suponho que o teste t signifique um tamanho de amostra bastante pequeno, portanto, possivelmente uma aproximação normal não é uma boa idéia. Eu usaria métodos estatísticos para taxas e proporções para procurar detalhes.
cbeleites suporta Monica

2
@ JohnMoeller: Estou dizendo que cada precisão é uma proporção. Se você quiser compará-los, use métodos para "diferença de proporções". Eu expandi isso em uma resposta para evitar comentários intermináveis.
cbeleites suporta Monica

Respostas:


14

Dietterich diz: "A distribuição binomial pode ser bem aproximada por uma distribuição normal para valores razoáveis ​​de ". Até agora, você não nos disse que possui n razoável . @ 30 casos de JohnMoeller são IMHO muito poucos para a aproximação normal (pelo menos sem qualquer conhecimento sobre p 1 e p 2 ). nnp1p2
cbeleites suporta Monica

Eu tenho pelo menos 4000 registros por classe disponíveis no conjunto de dados base, portanto, a amostra que seleciono pode ser menos que isso. A maior desvantagem dos testes de diferença de proporções é que eles ignoram a "variação interna do algoritmo de aprendizado". Eu acho que isso é importante para um classificador como uma rede neural, que eu estou usando.
entropia

bem, essa é uma situação completamente diferente da que JohnMoeller entrou em contato. Se você quer dizer instabilidade do modelo por "variação interna": pode medir isso. Vou atualizar minha resposta.
cbeleites suporta Monica

Para esclarecer, 30 é o número de vezes que seleciono conjuntos de partições de teste / treinamento, não o número de pontos de teste que seleciono.
precisa

@ JohnMoeller: desculpe, eu entendi completamente isso (vindo de um campo em que "uma amostra" é uma espécie física de algum tipo).
cbeleites suporta Monica

10

Eu não tenho o livro Fleiss em mãos, então tudo isso é IIRC.

Respondendo à pergunta de @ JohnMoeller nos comentários do momento: a pergunta original é IMHO irrespondível.

Portanto, suponha que eu possua 30 amostras, teste c1 e c2 em cada amostra e registre a precisão de cada uma delas.

fazendo isso, você acaba com uma tabela de contingência 2 x 2, dando ao classificador 1 correto / errado o classificador 2 correto / errado. Qual é o ponto de partida para o teste de McNemar . Portanto, isso é para uma comparação emparelhada, que é mais poderosa do que comparar proporções "independentes" (que não são completamente independentes se vierem do sorteio aleatório da mesma amostra finita).

No momento, não consigo procurar as "letras pequenas" de McNemar, mas 30 amostras não são muito. Então você pode até ter que mudar do teste exato de McNemar para o exato de Fisher [ou outra coisa] que calcula as probabilidades binomiais.


Meios de proporções:
não importa se você teste um e o mesmo classificador 10x com 10 casos de teste ou uma vez com todos esses 100 casos (a tabela 2 x 2 apenas conta todos os casos de teste).

Se as 10 estimativas de precisão de cada classificador na pergunta original forem obtidas por espera aleatória ou validação cruzada de 10 vezes ou 10x de inicialização, a suposição é geralmente que os 10 modelos substitutos calculados para cada classificador são equivalentes (= têm a mesma precisão), para que os resultados do teste possam ser agrupados *. Para validação cruzada de 10 vezes, você assume que o tamanho da amostra de teste é igual ao número total de amostras de teste. Para os outros métodos, não tenho tanta certeza: você pode testar o mesmo caso mais de uma vez. Dependendo dos dados / problema / aplicativo, isso não equivale a tanta informação quanto testar um novo caso.

k

knp^=knσ2(p^)=σ2(kn)=p(1p)n


Ah ok. É a última parte que esclarece as coisas, pelo menos para mim. Obrigado.
precisa

Obrigado pela resposta. Apenas não está claro o procedimento a seguir. Você diz que pré-forma a validação cruzada de 10 vezes em um único conjunto de dados. Meça a precisão da amostra de espera, que é uma matriz de confusão 2x2. Adicione as dez matrizes de confusão 2x2. Faça o teste de McNemar na matriz de confusão agregada 2x2.
entropia

@entropy: 1. A tabela de contingência 2x2 não é a matriz de confusão. 2. nova amostra de cada vez vs. teste de ambos os classificadores nos mesmos dados de teste: testes emparelhados são mais poderosos (e possíveis aqui). Veja a resposta atualizada.
cbeleites suporta Monica

Desculpe por isso, sim, tabela de contingência. Estou correto em dizer que o teste de McNemar também se traduz diretamente em um problema de várias classes.
Entropia

@cbeleites muito obrigado pela resposta !!! Eu acho que você já respondeu minhas perguntas exatamente. No entanto, ainda não entendo o procedimento exato a seguir. Você se importaria de elaborar o último parágrafo.
entropia
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.