Estou usando o classificador ingênuo de bayes para classificar entre dois grupos de dados. Um grupo de dados é muito maior que o outro (acima de 4 vezes). Estou usando a probabilidade anterior de cada grupo no classificador.
O problema é que o resultado obtido tem 0% de taxa positiva verdadeira e 0% de taxa positiva falsa. Obtive os mesmos resultados quando defini o anterior para 0,5 e 0,5.
Como posso definir meu limite para algo melhor para obter resultados mais equilibrados?
Eu tive um problema semelhante ao usar o classificador de regressão logística. Eu o resolvi subtraindo o termo anterior do viés.
Quando uso o Fisher Linear Discriminant nesses dados, obtenho bons resultados com o limite definido no meio.
Presumo que exista alguma solução comum para esse problema, simplesmente não consegui encontrá-lo.
UPDATE: Acabei de notar que o classificador está se ajustando demais. O desempenho no conjunto de treinamento é perfeito (100% correto).
Se eu usar grupos iguais, o classificador começará a classificar também para o grupo "pequeno", mas o desempenho é muito ruim (pior que FLD ou LR).
UPDATE2: Eu acho que o problema era que eu estava usando uma matriz de covariância completa. Correr com matriz de covariância diagonal me deu resultados mais "equilibrados".
Respostas:
Atribuir todos os padrões à classe negativa certamente não é um "resultado estranho". Pode ser que o classificador ideal de Bayes sempre classifique todos os padrões como pertencentes à classe majoritária; nesse caso, seu classificador está fazendo exatamente o que deve fazer. Se a densidade dos padrões pertencentes à classe positiva nunca exceder a densidade dos padrões pertencentes à classe negativa, é mais provável que a classe negativa seja qual for o valor dos atributos.
O que se deve fazer nessas circunstâncias é considerar a importância relativa dos erros falso-positivos e falso-negativos; na prática, é raro que os custos dos dois tipos diferentes de erro sejam os mesmos. Portanto, determine a perda para erros falsos positivos e falsos negativos e leve-os em consideração ao definir a probabilidade limite (custos de classificação incorreta diferentes são equivalentes a alterações das probabilidades anteriores, portanto, é fácil de implementar para Bayes ingênuo). Eu recomendaria ajustar os anteriores para minimizar a estimativa de validação cruzada da perda (incorporando seus custos desiguais de classificação incorreta).
Se seus custos de classificação incorreta forem iguais e seu conjunto de treinamento representar previamente as condições operacionais, assumindo que sua implementação está correta, é possível que você já tenha o melhor classificador NB.
fonte
Aumente o grupo de dados menor para caber no grande grupo por cálculo. Estenderá os dados do grupo menor, mas permitirá um cálculo mais igual.
Se você ainda obtiver resultados estranhos como atualmente, verifique toda a sua implementação do início para detectar um erro (provavelmente simples).
fonte