Este artigo irá discutir como o módulo SMOTE ajuda a aumentar os números subrepresentados no conjunto de dados de um modelo de aprendizagem de máquinas. SMOTE é o melhor método que lhe permite aumentar os casos raros em vez de duplicar os anteriores.
Quando se tem um conjunto de dados desequilibrado, pode-se ligar o modelo com o módulo SMOTE. Pode haver inúmeras razões para um conjunto de dados desequilibrado. Talvez a categoria alvo tenha um conjunto de dados único na população, ou os dados sejam difíceis de recolher. Pode procurar ajuda no SMOTE para analisar a classe subrepresentada. A saída do módulo conterá o original, bem como amostras adicionais. Estas novas amostras são amostras sintéticas minoritárias. É necessário definir o número destas amostras sintéticas antes de iniciar a técnica.

O que são Dados Desequilibrados?

Quando a classificação dos dados não é igual, pode referir-se a ela como dados desequilibrados. É uma tarefa de classificação e causa vários problemas na saída do modelo. Por exemplo, tem 100 casos num problema de classificação binária. A classe-1 inclui 80 casos etiquetados. Por outro lado, a amostra marcada restante estará na Classe-2. Este será um exemplo simples de um conjunto de dados desequilibrado. A proporção de instâncias de Classe 1 e de Classe 2 seria 4:1.
O problema de desequilíbrio de classes é muito comum, quer se fale de conjuntos de dados de teste reais ou de competição de Kaggle. Os problemas de classificação do mundo real incluirão algum nível de desequilíbrio de classificação. Isto acontece normalmente quando não há casos de dados adequados que se enquadrem em qualquer classe. Por conseguinte, é essencial escolher a métrica de avaliação correcta do modelo. Se o modelo tiver um conjunto de dados desequilibrado, o seu resultado será inútil. Contudo, se resolver um problema da vida real com este modelo, o resultado será um desperdício.
Em várias situações, o desequilíbrio de classe ocorrerá sempre. Um bom exemplo é quando se considera o conjunto de dados de transacções fraudulentas e não-fraudulentas. Encontrará menos transacções fraudulentas do que transacções não-fraudulentas. É aqui que encontrará problemas.

O que é SMOTE?

SMOTE é uma técnica que pode ser utilizada para sobreamostragem de dados. Esta técnica cria novos sintéticos em vez de sobreamostragem através de substituições. SMOTE introduz exemplos sintéticos nos segmentos de linha para a sobreamostragem das amostras da classe minoritária. Junta-se a toda a classe minoritária k que está próxima dos vizinhos. A escolha dos vizinhos dos k vizinhos mais próximos é aleatória. O número depende da quantidade de sobreamostragem de que o modelo necessita.
A principal função do SMOTE é a construção de classes minoritárias. Existe um algoritmo simples para fazer estas classes. Como deve saber, o desenvolvimento de instâncias repetitivas ou de sobreamostragem pode causar sobreajustamento. Além disso, o limite de decisão torna-se ainda mais apertado. Pode resolver o problema gerando amostras semelhantes, para além de as repetir todas. SMOTE gera amostras recém-construídas que têm características diferentes das amostras anteriores. Por conseguinte, o limite de decisão tornar-se-á mais suave. Isto irá ajudar o algoritmo a estimar a hipótese exacta. Abaixo encontrará alguns benefícios de SMOTE:
– A informação não irá perder.
– Esta técnica é simples, e pode ser facilmente interpretada e implementada no modelo.
– Melhora o sobreajustamento como exemplos sintéticos. Isto ajudará a gerar novas instâncias em vez de as replicar.

Como resolver o problema de desequilíbrio de classe com o SMOTE?

SMOTE sintetiza as novas instâncias minoritárias de forma semelhante às instâncias minoritárias reais. Imagine que há uma linha entre as instâncias existentes. SMOTE desenha estas linhas para criar instâncias sintéticas e novas instâncias minoritárias sobre estas linhas.
biblioteca(smotefamily)
dat_plot = SMOTE(dat[,2:4], # valores de característica
as.numeric(dat[,6]), # etiquetas de classe
K = 6, dup_size =0) # parâmetros da função
Uma vez concluído o processo de sintetização de novas instâncias minoritárias, o resultado incluirá o menor desequilíbrio dos dados. O modelo irá adicionar novas instâncias com a ajuda do SMOTE nivelando as classes.

Os Parâmetros de Função do SMOTE

Dup_size e K são os dois parâmetros do SMOTE (). Se quiser compreender Dup_size e K, precisa de aprender o mecanismo de funcionamento do SMOTE (). O SMOTE () funcionará através da perspectiva das instâncias existentes e gerará novas instâncias de forma aleatória. A função irá criar uma nova instância a alguma distância da sua instância vizinha. Contudo, ainda não é claro como é que o SMOTE () considera os seus vizinhos para cada instância minoritária que criam
– A função considerará o vizinho mais próximo em K = 1.
– A função considerará o vizinho mais próximo e o vizinho mais próximo em K = 2.
Normalmente, o SMOTE () irá percorrer a instância minoritária original. Enquanto a iteração de loop é uma instância única, o modelo irá criar a nova instância entre a instância original e o vizinho. O parâmetro dup_size indica quantas vezes a função SMOTE irá fazer o laço da instância original. Por exemplo, em dup_size = 1, o modelo irá sintetizar apenas quatro novos pontos de dados e assim por diante.

Conclusão

Ao criar um modelo preditivo na aprendizagem de máquinas, poderá experimentar conjuntos de dados desequilibrados. Estes conjuntos de dados podem afectar o resultado do modelo. Pode resolver este problema através de uma amostragem excessiva dos dados da minoria. Assim, em vez de duplicar os dados, utilize a técnica SMOTE e crie dados sintéticos para sobreamostragem. Abaixo encontrará algumas variações do SMOTE:
– Borderline-SMOTE
– SMOTE-NC
– SMOTE
– ADASYN
– SVM-SMOTE