Para um problema de classificação, se a variável de classe tiver distribuição desigual, qual técnica devemos usar?

9

por exemplo. se eu tiver uma pontuação de crédito variável de classe com duas classes boa e ruim, em que # (bom) = 700 e # (ruim) = 300. Não quero reduzir meus dados. qual técnica devo usar? Eu estava usando SVM, mas está dando tudo de bom em previsões.

asad.taj
fonte
Essa assimetria não parece tão ruim; Tem certeza de que não possui um erro em outro lugar? Além disso, você pode dar mais detalhes sobre os dados? Não existe uma solução geral para isso.
meu conjunto de dados tem 17 preditores (3 contínuos e 14 categóricos), obviamente uma variável de classe e um total de 1000 observações. A frequência dist. para a classe var. com trem e teste é de trem (mau) = 197, teste de (mau) = 103, trian (bom) = 446, teste de (bom) = 254
asad.taj

Respostas:

6

O tamanho da amostra da sua classe não parece tão desequilibrado, pois você tem 30% de observações na sua classe minoritária. A regressão logística deve ter bom desempenho no seu caso. Dependendo do número de preditores que entram no seu modelo, você pode considerar algum tipo de penalização para a estimativa de parâmetros, como crista (L2) ou laço (L1). Para uma visão geral dos problemas de classe muito desequilibrada, consulte Cramer (1999), The Statistician, 48: 85-94 ( PDF ).

Não conheço as técnicas de pontuação de crédito, mas encontrei alguns documentos que sugerem que você poderia usar o SVM com classes ponderadas, por exemplo, máquinas de vetores de suporte para pontuação de crédito: extensão a casos não padrão . Como alternativa, você pode examinar os métodos de reforço com CART ou Random Forests (no último caso, é possível adaptar a estratégia de amostragem para que cada classe seja representada ao construir as árvores de classificação). O artigo de Novak e LaDue discute os prós e contras do GLM vs particionamento recursivo . Também encontrei este artigo, Construção de Scorecard com classes desequilibradas de Hand e Vinciotti.

chl
fonte
O link para Cramer (1999) foi alterado para papers.tinbergen.nl/98085.pdf
germcd
10

Uma abordagem popular para resolver problemas de desequilíbrio de classe é influenciar o classificador para que ele preste mais atenção às instâncias positivas. Isso pode ser feito, por exemplo, aumentando a penalidade associada à classificação incorreta da classe positiva em relação à classe negativa. Outra abordagem é pré-processar os dados sobreamostrando a classe majoritária ou subamostrando a classe minoritária para criar um conjunto de dados balanceado.

CγCγ

Na fase de pré-processamento de dados, lembre-se de que o SVM exige que cada instância de dados seja representada como um vetor de números reais. Portanto, se houver atributos categóricos, é recomendável convertê-los em dados numéricos, usando m números para representar um atributo da categoria m (ou substituindo-o por m novas variáveis ​​binárias).

Além disso, o dimensionamento das variáveis ​​antes da aplicação do SVM é crucial, a fim de evitar atributos em intervalos numéricos maiores, dominando aqueles em intervalos numéricos menores.

Confira este documento .

Se você estiver trabalhando em R, confira a função de ajuste (pacote e1071) para ajustar os hiperparâmetros usando uma pesquisa de grade nos intervalos de parâmetros fornecidos. Em seguida, usando plot.tune , é possível ver visualmente qual conjunto de valores fornece a menor taxa de erro.

Há um atalho em torno da pesquisa de parâmetros demorada. Existe um pacote R chamado "svmpath" que calcula todo o caminho de regularização para um classificador SVM de 2 classes de uma só vez. Aqui está um link para o artigo que descreve o que está fazendo.

PS Você também pode achar este documento interessante: Obtendo estimativas de probabilidade calibradas

George Dontas
fonte
2
γ
1

Eu recomendaria usar um valor diferente do parâmetro de regularização C para exemplos da classe positiva e exemplos da classe negativa (muitos pacotes SVM suportam isso e, em qualquer caso, são facilmente implementados). Em seguida, use, por exemplo, validação cruzada para encontrar bons valores dos dois parâmetros de regularização.

Pode-se mostrar que isso é re-amostragem assintoticamente equivalente dos dados em uma proporção determinada por C + e C- (portanto, não há vantagem em re-amostrar, em vez de pesar novamente, eles têm a mesma coisa no final e nos pesos pode ser contínuo, e não discreto, por isso oferece um controle mais preciso).

Não basta escolher C + e C- para atribuir uma ponderação de 50 a 50 aos padrões positivos e negativos, pois a força do efeito do problema das "classes de desequilíbrios" variará de conjunto de dados para conjunto de dados; A ponderação não pode ser determinada a priori.

Lembre-se também de que os custos falso-positivos e falso-negativos podem ser diferentes, e o problema pode se resolver se estes forem incluídos na determinação de C + e C-.

Também é importante ter em mente que, para alguns problemas, a regra de decisão ideal de Bayes atribui todos os padrões a uma única classe e ignora a outra, de modo que não é necessariamente uma coisa ruim - pode significar apenas que a densidade dos padrões de uma classe está em toda parte abaixo da densidade de padrões da outra classe.

Dikran Marsupial
fonte