O SVM lida com o conjunto de dados desequilibrado? Existem parâmetros (como C ou custo de classificação incorreta) que lidam com o conjunto de dados desequilibrado?
O SVM lida com o conjunto de dados desequilibrado? Existem parâmetros (como C ou custo de classificação incorreta) que lidam com o conjunto de dados desequilibrado?
Respostas:
Para conjuntos de dados desequilibrados, normalmente alteramos a penalidade de classificação incorreta por classe. Isso é chamado SVM ponderado por classe, o que minimiza o seguinte:
onde e N representam as instâncias de treinamento positivas / negativas. No SVM padrão, temos apenas um único valor C , enquanto agora temos 2. A penalidade de classificação incorreta para a classe minoritária é escolhida como sendo maior que a da classe majoritária.
Essa abordagem foi introduzida bem cedo, é mencionada, por exemplo, em um artigo de 1997:
Edgar Osuna, Robert Freund e Federico Girosi. Máquinas de vetores de suporte: treinamento e aplicativos. Relatório Técnico AIM-1602, 1997. ( pdf )
Essencialmente, isso é equivalente à superamostragem da classe minoritária: por exemplo, se isso é totalmente equivalente ao treinamento de um SVM padrão com C = C n e g depois de incluir todos os positivos duas vezes no conjunto de treinamento.
Os SVMs podem lidar com conjuntos de dados com frequências de classe desequilibradas. Muitas implementações permitem que você tenha um valor diferente para a penalidade de folga (C) para classes positivas e negativas (que é assintoticamente equivalente à alteração das frequências de classe). Eu recomendaria definir os valores desses parâmetros para maximizar o desempenho da generalização em um conjunto de testes em que as frequências de classe são aquelas que você espera ver no uso operacional.
Eu fui uma das muitas pessoas que escreveram artigos sobre isso, aqui é o meu , vou ver se consigo encontrar algo mais recente / melhor. Tente Veropoulos, Campbell e Cristianini (1999).