Que problema a superamostragem, a subamostragem e o SMOTE resolvem?

24

Em uma pergunta recente e bem recebida, Tim pergunta quando os dados desequilibrados são realmente um problema no Machine Learning ? A premissa da pergunta é que há muita literatura de aprendizado de máquina discutindo o equilíbrio de classes e o problema das classes desequilibradas . A idéia é que conjuntos de dados com um desequilíbrio entre as classes positiva e negativa causam problemas para alguns algoritmos de classificação de aprendizado de máquina (eu estou incluindo modelos probabilísticos aqui), e métodos devem ser buscados para "equilibrar" o conjunto de dados, restaurando os parâmetros 50/50 perfeitos dividido entre classes positivas e negativas.

O senso geral das respostas aprovadas é que "não é, pelo menos se você é atencioso em sua modelagem". M. Henry L., em um comentário com voto positivo para uma resposta aceita, declara

[...] não há um problema de baixo nível com o uso de dados desequilibrados. Na minha experiência, o conselho para "evitar dados desequilibrados" é específico do algoritmo ou é herdado da sabedoria. Concordo com o AdamO que, em geral, dados desequilibrados não apresentam problemas conceituais para um modelo bem especificado.

AdamO argumenta que o "problema" com o equilíbrio de classes é realmente de raridade de classe

Portanto, pelo menos em regressão (mas suspeito em todas as circunstâncias), o único problema com dados desequilibrados é que você efetivamente possui um tamanho pequeno de amostra. Se qualquer método for adequado para o número de pessoas na classe mais rara, não haverá problema se a proporção de membros for desequilibrada.

Se esse é o verdadeiro problema em questão, deixa uma questão em aberto: qual é o objetivo de todos os métodos de reamostragem destinados a equilibrar o conjunto de dados: sobreamostragem, subamostragem, SMOTE, etc.? Claramente, eles não tratam do problema de ter implicitamente um pequeno tamanho de amostra; você não pode criar informações do nada!

Matthew Drury
fonte
Isso é exatamente o que eu teria mudado para ... obrigado. Ele não cobre todo o escopo da sua pergunta, mas um título não precisa - ele claramente mostra o tipo de coisa que você está perguntando.
Glen_b -Reinstar Monica
Certamente, existem situações em que os métodos de autoinicialização e subamostragem são úteis e, às vezes, melhores que outros métodos não paramétricos. Livros sobre a inicialização e subamostragem cobrem isso. Existem discussões neste site que discutem isso, incluindo a superioridade do bootstrap em relação a deixar de fora na análise discriminante, mesmo em amostras relativamente pequenas. Certamente, existem algumas situações em que o bootstrap falha e essas são mencionadas no meu livro e em outras.
Michael R. Chernick
@ MichaelChernick Não estou falando sobre o bootstrap, é sobre isso que Glen estava comentando. Estou falando de abordagens de "balanceamento de classe" como amostragem acima e abaixo, para que a classe positiva para negativa seja igualmente representada em um conjunto de dados.
Matthew Drury
Você inclui subamostragem? Você está se referindo apenas ao tamanho desigual da amostra? Quão geral você está fazendo uma declaração?
Michael R. Chernick
@MichaelChernick Adicionei algumas observações esclarecedoras no primeiro e no último parágrafos, espero que ajude.
Matthew Drury

Respostas:

0

Algumas técnicas de amostragem são para ajustar o viés (se a taxa de população é conhecida e diferente), mas eu concordo com a noção de que a classe desequilibrada não é o problema em si. Um dos principais motivos se resume ao desempenho do processamento. Se nossa classe de destino, por exemplo, for um caso extremamente raro em 1: 100000, nosso conjunto de dados de modelagem seria massivo e a computação seria difícil. A amostragem, independentemente da estratégia, está sempre descartando alguns dados para reduzir o tamanho total do conjunto de dados. Suponho que a diferença entre todas as diferentes estratégias de amostragem seja apenas a esperteza em torno da qual jogamos fora os dados sem sacrificar a perda de possibilidades preditivas.

Josh
fonte
4
Tudo isso é verdade, mas muitos dos métodos que estou discutindo criam conjuntos de dados maiores . O upsampling cria mais instâncias da classe positiva, copiando os pontos de dados existentes, e o SMOTE cria pontos de dados "sintéticos" da classe rara. Isso certamente não ajudaria na eficiência da computação.
Matthew Drury
0

O problema que esses métodos estão tentando resolver é aumentar o impacto da classe minoritária na função de custo. Isso ocorre porque algos estão tentando ajustar bem todo o conjunto de dados e depois se adaptam à maioria. Outra abordagem seria usar pesos de classe, e essa abordagem na maioria dos casos fornece melhores resultados, pois não há perda de informações por subamostragem ou perda de desempenho e introdução de ruído por superamostragem.

Milan Vukicevic
fonte
2
Eu não entendo sua resposta.
Michael R. Chernick
Eu quis dizer que o desempenho do classificador é avaliado em todo o conjunto de dados (erro médio em exemplos positivos e negativos), em que o erro de cada exemplo é igualmente ponderado. Assim, o algoritmo (por exemplo, regressão logística) adapta sua função de hipótese a exemplos que maximizarão a redução de erros. Nesse caso, para a classe majoritária, onde a minoria (classe negativa) é praticamente desconsiderada porque não tem alta influência no erro em todo o conjunto de dados. É por isso que a superamostragem, a amostragem ou a ponderação de classe permitem uma melhor adoção do algoritmo para a classe minoritária.
Milan Vukicevic
0

Vou te dar um exemplo mais extremo. Considere o caso em que você tem um conjunto de dados com 99 pontos de dados rotulados como positivos e apenas um rotulado como negativo. Durante o treinamento, seu modelo perceberá que, se classificar tudo como positivo, acabará se safando. Uma maneira de corrigir isso é sobreamostrar a classe sub-representada e outra é subamostrar a classe super-representada. Por exemplo, em um conjunto de dados de 70 rótulos positivos e 30 negativos, posso provar os rótulos negativos com substituição e os positivos sem substituição, o que resultará no meu modelo encontrar mais rótulos negativos durante o treinamento. Dessa forma, se meu modelo tentar classificar tudo como positivo, ocorrerá uma perda maior do que teria ocorrido de outra forma.

Outra abordagem que não se refere à amostragem é ajustar a função de custo para dar pesos mais altos aos pontos de dados com o rótulo minoritário. Por exemplo, se você estiver usando perda de NLL em um conjunto de dados em que 1 é super-representado em comparação com 0 entre rótulos, você pode ajustar sua função de perda para:

L(xi~,yi)=α(yi)ln(xi~)β(1yi)ln(1xi~)

β>αβα

Ilkin Bayramli
fonte
0

Discordo da premissa de que dados desequilibrados não são um problema no aprendizado de máquina. Talvez menos na regressão, mas certamente na classificação.

Dados desequilibrados são relevantes nos aplicativos Machine Learning devido à diminuição do desempenho dos algoritmos (a pesquisa em que estou pensando é especificamente sobre classificadores) na configuração do desequilíbrio de classe.

Tome um problema simples de classificação binária com uma proporção de 25: 1 de exemplos de treinamento da classe A 'vs.' classe B '. A pesquisa mostrou que a precisão referente à classificação da classe B é afetada simplesmente por causa da menor proporção de dados de treinamento. Faz sentido, quanto menos exemplos de treinamento você tiver, mais pobre seu classificador treinará nesses dados. Como um dos comentadores afirmou, você não pode fazer algo do nada. Pelos documentos que eu vi, em problemas de classificação multiclasse, parece que você precisa chegar a uma proporção de 10: 1 para começar a ter um impacto significativo na precisão da classe minoritária. Talvez as pessoas que leem literatura diferente da que eu vi tenham opiniões diferentes.

Portanto, as soluções propostas são: Superamostrando a classe minoritária, Subamostrando a classe majoritária ou usando SMOTE na classe minoritária. Sim, você realmente não pode criar dados do nada (o SMOTE faz isso, mas não exatamente), a menos que esteja entrando na criação de dados sintéticos para a classe minoritária (nenhum método simples). Outras técnicas, como MixUp e similares, potencialmente se enquadram nesse conceito, mas acho que são mais regularizadores do que soluções de desequilíbrio de classe. Nos artigos que li, Oversampling> SMOTE> Undamampling.

Independentemente da sua técnica, você está alterando a relação entre as classes majoritária e minoritária que pode afetar a incidência. Em outras palavras, se você estiver criando um classificador para detectar doenças cerebrais super raras X, com uma incidência de 1 em 100.000 e seu classificador em 1: 1, talvez seja mais sensível e menos específico com um número maior de falsos positivos . Se é importante que você detecte esses casos e o árbitro mais tarde, você está bem. Caso contrário, você desperdiçou muito tempo e dinheiro de outras pessoas. Eventualmente, esse problema precisará ser resolvido.

Então, para responder à pergunta:

tl / dr: existem operações de balanceamento de classe como Sob / Subamostragem e SMOTE (e dados sintéticos) para melhorar o desempenho do algoritmo de aprendizado de máquina (classificador) resolvendo o desempenho inerente ao desempenho em um algoritmo causado pelo próprio desequilíbrio .

drsxr
fonte