O Support Vector Machine lida com o conjunto de dados desequilibrado?

14

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?

RockTheStar
fonte
1
O que torna um conjunto de dados "desequilibrado"?
whuber
1
@whuber um conjunto de dados de classificação com uma prevalência de classe bastante variada é frequentemente chamado de desequilibrado.
Marc Claesen
1
@ Marc Isso pode ser verdade em geral, mas é um conceito vago. Quanto é "amplamente variável"? Por que isso deveria importar, exceto em certas circunstâncias especiais? Eu acredito que é importante para nós aprender o que o proponente dessa questão quer dizer com "desequilibrado", em vez de aceitar o palpite inteligente de alguém sobre o significado pretendido.
whuber
Os conjuntos de dados desequilibrados do @whuber são um conceito comum no aprendizado de máquina. Em termos de aplicativos devido a, por exemplo, detecção de spam, etc. Talvez devido à preponderância de algoritmos visando erro de classificação incorreta em vez de probabilidade. Isso, por sua vez, torna problemática a ponderação do erro.
seanv507
2
Obrigado, @seanv, pelo esclarecimento. O problema terminológico realmente parece ser que "manipula" não se refere a "pode ​​ser aplicado a", mas implica uma configuração na qual (1) existe uma classe que é tão minoritária que seu desempenho de previsão pode ser fortemente afetado por a presença das outras classes, enquanto (2) a previsão precisa para a classe minoritária é de interesse. Nesse sentido, "conjunto de dados desequilibrado" é uma descrição incompleta do problema, mas como o termo parece ter adquirido alguma moeda, parece inútil reclamar.
whuber

Respostas:

18

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:

minw,b,ξEu=1Nj=1NαEuαjyEuyjκ(xEu,xj)+CposiPξi+CnegiNξi,s.t.yi(j=1Nαjyjκ(xi,xj)+b)1ξi,i=1Nξi0,i=1N

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.PNC

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.Cpos=2CnegC=Cneg

Marc Claesen
fonte
Legal, obrigado! Além disso, a regressão logística, a árvore de decisão lida com esse problema de desequilíbrio?
RockTheStar
Como a regressão logística certamente faz, você apenas avalia a probabilidade de padrões positivos e negativos de maneira diferente.
Dikran Marsupial
A regressão logística e o SVM fornecem maneiras intrínsecas. Eu não sei de cor por todos esses outros métodos, mas a amostragem excessiva da classe minoritária funciona para praticamente todos os métodos (embora não seja exatamente matematicamente elegante).
Marc Claesen
1
Legal, obrigado @Dikran. Marc: sim, a simples amostragem simples funciona em geral. No entanto, isso depende da situação. O que acontece é que você está adicionando "pesos" aos dados minoritários quando está sobreamostrando a minoria (replicando pontos minoritários repetidamente nos mesmos locais). Isso essencialmente ajuda a melhorar a "consideração" do exemplo da minoria. No entanto, o limite de decisão da classificação se tornará bastante tenso (não suficientemente geral), ou seja, pode ocorrer um ajuste excessivo). Portanto, podemos ter que considerar algumas técnicas de amostragem probablística, como SMOTE.
RockTheStar
10

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).

Dikran Marsupial
fonte
Dikran, por que é apenas assintoticamente equivalente ... certamente é exatamente equivalente a ponderar os diferentes erros de classe de maneira diferente?
seanv507
É exatamente equivalente a ponderar os erros de classe, mas isso não é o mesmo que reamostrar os dados (para começar, os pesos são continuamente variáveis, mas os dados são discretos). É um dos resultados de expectativa assintótica (que não parece particularmente útil na maioria das circunstâncias).
Dikran Marsupial