Ultimamente, tenho pensado muito sobre o "problema de desequilíbrio de classe" no aprendizado de máquina / estatística, e estou me aprofundando cada vez mais em um sentimento de que simplesmente não entendo o que está acontecendo.
Primeiro, deixe-me definir (ou tentar) definir meus termos:
O problema de desequilíbrio de classe no aprendizado de máquina / estatística é a observação de que alguns algoritmos de classificação binária (*) não apresentam bom desempenho quando a proporção de 0 classe a 1 classe é muito distorcida.
Portanto, no exemplo acima, se houvesse cem classes para cada classe , eu diria que o desequilíbrio de classe é de a , ou .
A maioria das afirmações do problema que vi não tem o que consideraria uma qualificação suficiente (que modelos enfrentam, quão desequilibrado é um problema), e essa é uma fonte da minha confusão.
Uma pesquisa dos textos padrão no aprendizado de máquina / estatística mostra pouco:
- Os elementos de inclinação estatística e introdução à aprendizagem estatística não contêm "desequilíbrio de classe" no índice.
O Machine Learning para análise de dados preditiva também não contém "desequilíbrio de classe" no índice.
Murphy Machine Learning: uma perspectiva probabilística faz conter "desequilíbrio classe * no índice A referência é a uma seção sobre SVM do, onde eu encontrei o seguinte comentário tentadora.:
Vale lembrar que todas essas dificuldades, e a infinidade de heurísticas que foram propostas para corrigi-las, surgem fundamentalmente porque os SVMs não modelam incerteza usando probabilidades, portanto, suas pontuações de saída não são comparáveis entre as classes.
Esse comentário concorda com a minha intuição e experiência: no meu trabalho anterior, rotineiramente ajustávamos regressões logísticas e modelos de árvores com gradiente (para minimizar a probabilidade binomial de log) a dados desequilibrados (da ordem de desequilíbrio de classe), sem questões óbvias no desempenho.
Eu li (em algum lugar) que os modelos baseados em árvores de classificação (árvores em si e floresta aleatória) também sofrem com o problema de desequilíbrio de classe. Isso atrapalha um pouco as águas, as árvores, em certo sentido, retornam probabilidades: o registro de votação para a classe-alvo em cada nó terminal da árvore.
Então, para finalizar, o que realmente busco é uma compreensão conceitual das forças que levam ao problema de desequilíbrio de classe (se existir).
- É algo que fazemos a nós mesmos com algoritmos mal escolhidos e limites de classificação padrão preguiçosos?
- Desaparece se sempre ajustamos modelos de probabilidade que otimizam os critérios de pontuação adequados? Dito de forma diferente, a causa é simplesmente uma má escolha da função de perda, ou seja, avaliar o poder preditivo de um modelo com base em regras rígidas de classificação e precisão geral?
- Em caso afirmativo, os modelos que não otimizam as regras de pontuação adequadas são inúteis (ou pelo menos menos úteis)?
(*) Por classificação, quero dizer qualquer modelo estatístico adequado aos dados da resposta binária. Estou não assumindo que meu objetivo é uma tarefa difícil de uma classe ou de outra, embora possa ser.
fonte
poor choice of loss function
na minha lista. Então, você acha que isso é verdade mesmo para regras de pontuação adequadas, pois as funções de perda?Respostas:
Uma entrada da Encyclopedia of Machine Learning ( https://cling.csd.uwo.ca/papers/cost_sensitive.pdf ) explica de maneira útil que o que é chamado de "o problema de desequilíbrio de classe" é melhor entendido como três problemas separados:
Os autores explicam:
Portanto, como Murphy implica, não há nada inerentemente problemático no uso de classes desequilibradas, desde que você evite esses três erros. Os modelos que geram probabilidades posteriores facilitam evitar erros (1) do que os modelos discriminantes como o SVM, porque permitem separar a inferência da tomada de decisão. (Veja a seção 1.5.4, Inferência e Decisão do Bispo, para uma discussão mais aprofundada sobre esse último ponto.)
Espero que ajude.
fonte
Qualquer coisa que envolva otimização para minimizar uma função de perda, se for suficientemente convexa, fornecerá uma solução que seja um mínimo global dessa função de perda. Digo 'suficientemente convexo', já que as redes profundas não são de todo convexas, mas fornecem mínimos razoáveis na prática, com escolhas cuidadosas da taxa de aprendizado etc.
Portanto, o comportamento de tais modelos é definido pelo que colocarmos na função de perda.
Agora, digamos que temos uma função de perda que é:
Dez vezes menor que a perda ao definir o limite, de modo a atribuir igual recall e precisão a cada classe.
Como alternativa, podemos modificar o conjunto de dados clonando a cada exemplo B 99 vezes, o que também fará com que a função de perda não tenha mais um mínimo em uma posição diferente do nosso limite ideal anterior.
fonte
FP
TP
Observe que os classificadores de uma classe não têm um problema de desequilíbrio, pois olham para cada classe independentemente de todas as outras classes e podem lidar com "não-classes" simplesmente não modelando-as. (Eles podem ter um problema com um tamanho de amostra muito pequeno, é claro).
Muitos problemas que seriam modelados de maneira mais apropriada pelos classificadores de uma classe levam a modelos mal definidos quando abordagens discriminatórias são usadas, dos quais "problemas de desequilíbrio de classe" são um sintoma.
Como exemplo, considere algum produto que pode ser bom para ser vendido ou não. Tal situação é geralmente caracterizada por
Assim, a classe "boa" é bem definida, enquanto a classe "não boa" é mal definida. Se essa situação é modelada por um classificador discriminativo, temos um duplo "problema de desequilíbrio": não apenas a classe "não boa" tem um tamanho pequeno de amostra, mas também uma densidade amostral ainda menor (menos amostras espalhadas por um parte maior do espaço do recurso).
Esse tipo de "problema de desequilíbrio de classe" desaparecerá quando a tarefa for modelada como reconhecimento de uma classe da classe "boa" bem definida.
fonte