Eu tenho um conjunto de dados na forma de (recursos, saída binária 0 ou 1), mas 1 acontece muito raramente, portanto, sempre prevendo 0, obtenho precisão entre 70% e 90% (dependendo dos dados específicos que vejo) ) Os métodos de ML me dão a mesma precisão e, acredito, deve haver alguns métodos padrão a serem aplicados nessa situação, que melhorariam a precisão em relação à regra óbvia de previsão.
machine-learning
classification
binary-data
unbalanced-classes
Gato preguiçoso
fonte
fonte
Respostas:
Hxd1011 e Frank estão certos (+1). A reamostragem essencial e / ou a aprendizagem sensível ao custo são as duas principais formas de contornar o problema dos dados desequilibrados; terceiro é usar métodos de kernel que às vezes podem ser menos afetados pelo desequilíbrio de classe. Permitam-me enfatizar que não há solução para balas de prata. Por definição, você tem uma classe que é representada inadequadamente em suas amostras.
Dito isto, acredito que você encontrará os algoritmos SMOTE e ROSE muito úteis. SMOTE utiliza eficazmente uma -nearest vizinhos aproximar a excluir membros da classe maioria enquanto de um modo semelhante a criação de exemplos de síntese de uma classe minoritária. O ROSE tenta criar estimativas das distribuições subjacentes das duas classes usando uma abordagem de auto-inicialização suavizada e prová-las para exemplos sintéticos. Ambos estão prontamente disponíveis em R, SMOTE no pacote DMwR e ROSE no pacote com o mesmo nome . Tanto o SMOTE quanto o ROSE resultam em um conjunto de dados de treinamento menor que o original.k
Provavelmente, o artigo recente mais popular sobre o assunto é Aprendendo com dados desequilibrados, de He e Garcia. Ele fornece uma visão geral muito agradável dos pontos levantados por mim e em outras respostas. Além disso, acredito que o passo a passo sobre a subamostragem para desequilíbrios de classe , apresentado por Max Kuhn como parte do pacote de intercalação é um excelente recurso para obter um exemplo de estrutura de como a sub-amostragem excessiva e a criação de dados sintéticos podem medir um contra o outro.
fonte
Primeiro, a métrica de avaliação para dados desequilibrados não seria precisa. Suponha que você esteja realizando uma detecção de fraude, que 99,9% dos seus dados não são fraudulentos. É fácil criar um modelo fictício com 99,9% de precisão. (apenas preveja todos os dados não fraudulentos).
Você deseja alterar sua métrica de avaliação de precisão para outra, como pontuação F1 ou precisão e recall . No segundo link que forneci. há detalhes e intuições sobre por que a recuperação de precisão funcionará.
Para dados altamente desequilibrados, a construção de um modelo pode ser muito desafiadora. Você pode jogar com a função de perda ponderada ou modelar apenas uma classe. como uma classe SVM ou uma gaussiana multi-variável (conforme o link que forneci antes).
fonte
Os problemas de desequilíbrio de classe podem ser tratados com aprendizado sensível ao custo ou reamostragem. Veja as vantagens e desvantagens do aprendizado sensível ao custo x da amostragem , copypasted abaixo:
{1} fornece uma lista de vantagens e desvantagens do aprendizado sensível a custos versus amostragem:
Eles também fizeram uma série de experimentos, que eram inconclusivos:
Eles então tentam entender quais critérios nos conjuntos de dados podem sugerir qual técnica é melhor ajustada.
Eles também observam que o SMOTE pode trazer algumas melhorias:
{1} Weiss, Gary M., Kate McCarthy e Bibi Zabar. "Aprendizagem sensível ao custo x amostragem: qual é o melhor para lidar com classes desequilibradas com custos de erro desiguais?" DMIN 7 (2007): 35-41. https://scholar.google.com/scholar?cluster=10779872536070567255&hl=pt_BR&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf
fonte
Várias respostas a esta consulta já forneceram várias abordagens diferentes, todas válidas. Esta sugestão é de um artigo e software associado de Gary King, eminente cientista político de Harvard. É co-autor de um artigo intitulado Regressão logística em dados de eventos raros, que fornece algumas soluções bastante convincentes.
Aqui está o resumo:
Aqui está um link para o artigo ... http://gking.harvard.edu/files/abs/0s-abs.shtml
fonte
O desenvolvimento de classificadores para conjuntos de dados com classes desequilibradas é um problema comum no aprendizado de máquina. Os métodos baseados em densidade podem ter méritos significativos sobre os "classificadores tradicionais" em tal situação.
Você pode consultar o seguinte artigo:
"Um estimador de plug-in computável de conjuntos de volumes mínimos para detecção de novidades", C. Park, J. Huang e Y. Ding, Operations Research, 58 (5), 2013.
fonte
Esse é o tipo de problema em que a detecção de anomalias é uma abordagem útil. Isso é basicamente o que rodrigo descreveu em sua resposta, na qual você determina o perfil estatístico de sua classe de treinamento e define um limite de probabilidade além do qual medidas futuras são determinadas para não pertencer a essa classe. Aqui está um tutorial em vídeo , que deve ajudá-lo a começar. Depois de absorver isso, eu recomendaria procurar a Estimativa de densidade do kernel.
fonte