Problema na comparação de classificadores para reconhecimento de padrões

7

Eu projetei um classificador M que reconhece gestos e sempre o classifica em qualquer categoria. Um gesto é classificado com base na distância entre a série temporal da amostra y e a série temporal do treinamento x. O resultado do classificador são valores probabilísticos. Existem 3 classes / categorias com os rótulos A, B, C que classificam os gestos com as mãos, onde há 100 amostras para cada classe a serem classificadas (recurso único e comprimento dos dados = 100). Os dados são séries temporais diferentes (coordenada x x tempo). O conjunto de treinamento é usado para atribuir probabilidades, indicando qual gesto ocorreu quantas vezes. Assim, das 10 amostras de treinamento, se o gesto A apareceu 6 vezes, a probabilidade de um gesto se enquadrar na categoria A é

P (A) = 0,6 similarmente P (B) = 0,3

e

P (C) = 0,1

Agora, estou tentando comparar o desempenho desse classificador com o classificador Bayes, K-NN, análise de componentes principais (PCA) e rede neural.

  1. Em que base, parâmetro e método devo fazê-lo se considerar ROC ou validação cruzada, pois os recursos para o meu classificador são os valores probabilísticos do gráfico ROC, portanto, quais devem ser os recursos para k-nn, classificação bayes e PCA?
  2. Existe um código para isso que será útil.
  3. Qual deve ser o valor de k, existem 3 classes de gestos?

Por favor ajude. Eu estou em uma correção.

user1214586
fonte
O PCA não é análise de componentes principais ?
Om-nom-nom
Como essa pergunta está relacionada à sua pergunta anterior cs.stackexchange.com/questions/840/… ?
31812 Dave Clarke
Esta é uma versão mais curta dessa pergunta, com significado apenas sobre como comparar os classificadores.
user1214586
@ user1214586: O antigo ainda é relevante?
Raphael
@Raphael: Sim, a pergunta antiga é relevante, pois a parte referente à seleção de recursos e uso do código k-nn e matlab, além de como lidar com outros classificadores, não está respondida / não está clara. Obrigado e seria obrigado por uma solução.
user1214586

Respostas:

7

Não há uma maneira fácil de fazer isso. De fato, um artigo recente de Charles Parker explica alguns dos problemas com o uso de medidas de curva ROC (há uma visão geral amigável no meu blog - alerta de autopromoção !!). Seu artigo faz algumas recomendações sobre as melhores maneiras de comparar diferentes classificadores, então você encontrará algo útil lá.

Suresh
fonte
Então, o que alguém faz se propõe um classificador ou melhora um já existente? Não existe uma maneira padrão geral de comparar?
user1214586
Além disso, no caso de classificação de classe única de recurso múltiplo, o recurso deve ser o mesmo para comparação? Eu tenho dificuldade nisso, pois no meu exemplo, os algoritmos diferentes têm maneiras diferentes de classificar. Então, preciso reconhecer gestos para cada um dos classificadores que reconheceriam em seu próprio design algorítmico?
user1214586
IIRC, o documento da Parker recomenda algumas 'melhores práticas'.
Suresh
0
  1. A maneira geral de comparar classificadores é compará-los usando ROC. Para um intervalo fixo de taxas de alarmes falsos, verifique qual classificador alcançou a maior precisão. Se você deseja uma única medida, pode usar Área sob ROC (AUC). Existem muitas outras medidas também, procure-as. Para uma comparação justa, você precisa comparar todos os classificadores em pé de igualdade, isso significa os mesmos recursos e as mesmas condições de treinamento.

  2. O valor de k é algo que você precisará descobrir tentando valores diferentes. Escolha o valor com melhor desempenho no seu conjunto de validação, mas relate apenas os resultados no seu conjunto de testes, que você não usou durante o ajuste de parâmetros.

Dmitry Kamenetsky
fonte