Otimizando para curvas Precision-Recall sob desequilíbrio de classe


30

Eu tenho uma tarefa de classificação na qual tenho vários preditores (um dos quais é o mais informativo) e estou usando o modelo MARS para construir meu classificador (estou interessado em qualquer modelo simples e usar glms para fins ilustrativos seria bem também). Agora, tenho um enorme desequilíbrio de classe nos dados de treinamento (cerca de 2700 amostras negativas para cada amostra positiva). Semelhante às tarefas de Recuperação de Informações, estou mais preocupado em prever as amostras positivas de classificação mais altas. Por esse motivo, o desempenho nas curvas do Precision Recall é importante para mim.

Antes de tudo, simplesmente treinei o modelo nos meus dados de treinamento, mantendo o desequilíbrio da classe como está. Visualizo meu modelo treinado em vermelho e a entrada mais importante em azul.

Treinamento em dados desequilibrados, avaliação em dados desequilibrados :

RP para treinamento desequilibrado ROC para treinamento desequilibrado

Pensando que o desequilíbrio de classe está descartando o modelo, uma vez que aprender as amostras positivas do topo do ranking é uma parte minúscula de todo o conjunto de dados, ampliei os pontos de treinamento positivo para obter um conjunto de dados de treinamento equilibrado. Quando planto o desempenho no conjunto de treinamento equilibrado , obtenho um bom desempenho. Nas curvas PR e ROC, meu modelo treinado faz melhor do que as entradas.

Treinamento em dados balanceados (ampliados), avaliação também em dados balanceados (ampliados):

RP para treinamento equilibrado, visualizado em conjunto de dados equilibrado ROC para treinamento equilibrado, visualizado em conjunto de dados equilibrado

No entanto, se eu usar esse modelo treinado nos dados balanceados, para prever o conjunto de treinamento original e desequilibrado, ainda assim obterei um desempenho ruim na curva de relações públicas.

Treinamento em dados balanceados (ampliados), avaliação em dados desbalanceados originais:

RP para treinamento equilibrado, visualizado no conjunto de dados original e desequilibrado ROC para treinamento equilibrado, visualizado no conjunto de dados original e desequilibrado

Então, minhas perguntas são:

  1. É a razão pela qual a visualização da curva PR mostra desempenho inferior do meu modelo treinado (vermelho), enquanto a curva ROC mostra melhorias devido ao desequilíbrio de classe?
  2. As abordagens de reamostragem / amostragem ascendente / amostragem descendente podem resolver isso para forçar o treinamento a se concentrar na região de alta precisão / baixa recordação?
  3. Existe alguma outra maneira de focar o treinamento na região de alta precisão / baixa recordação?

Você poderia editar sua pergunta para esclarecer quais medidas são computadas no conjunto de treinamento e quais dados mantidos?
Jack Tanner

@ JackTanner, tudo está calculado no treinamento definido por enquanto. Como o modelo não possui muitos parâmetros e o número de amostras no conjunto de treinamento é enorme, não me preocupo muito com o ajuste excessivo. Além disso, quero ter certeza de que estou obtendo bom desempenho no conjunto de treinamento antes que eu possa esperar no conjunto de teste.
highBandWidth

Qual botão você está controlando no seu algoritmo de aprendizado para avaliar a precisão em diferentes níveis de recall? Você tentou expandir seu conjunto de recursos, por exemplo, com combinações e transformações de recursos?
Jack Tanner

@ JackTanner, o modelo que eu tenho (MARS com função logit) fornece saídas no intervalo de 0 a 1, semelhante à regressão logística. É basicamente o mesmo, mas inclui mais alguns recursos. Para obter precisão em diferentes recalls, basta definir os limites em diferentes pontos. Eu apenas uso a maneira padrão de calcular PR ou ROC a partir de uma lista classificada.
highBandWidth

Respostas:


15
  1. A curva ROC é insensível a mudanças no desequilíbrio de classe; veja Fawcett (2004) "ROC ROC: Notes e Considerações Práticas para Pesquisadores".
  2. A amostragem ascendente da classe de baixa frequência é uma abordagem razoável.
  3. Existem muitas outras maneiras de lidar com o desequilíbrio de classe. Impulsionar e ensacamento são duas técnicas que vêm à mente. Parece um estudo recente relevante: comparando técnicas de reforço e ensacamento com dados ruidosos e desequilibrados

PS Problema puro; Eu adoraria saber como fica.



1

Eu queria chamar a atenção para o fato de que as duas últimas experiências estão de fato usando o mesmo modelo no conjunto de dados QUASE O MESMO. A diferença no desempenho não é diferente do modelo, é explicada pelas diferentes distribuições do conjunto de dados de validação e pelas propriedades de METRICS específicas usadas - precisão e recall, que dependem muito dessa distribuição. Para elaborar um pouco mais esse ponto, se você pegou X entradas distintas do seu conjunto de dados de validação inicial e replicou a classe minoritária para o conjunto de dados escalonado, seu modelo fará as mesmas previsões para essas entradas X, corretas ou incorretas, tanto no escalonado quanto no desequilibrado conjuntos de dados de validação. A única diferença é que, para cada falso positivo, haverá menos positivos verdadeiros no conjunto de dados inicial (portanto, menor precisão) e mais positivos verdadeiros no conjunto de dados balanceado (simplesmente devido ao fato de haver exemplos mais positivos no conjunto de dados em geral) . É por isso que o Precision e o Recall são sensíveis à inclinação. Por outro lado, como ilustram seus experimentos, o ROC não muda. Isso pode ser observado olhando também para sua definição. É por isso que o ROC não é sensível à inclinação.

Ainda não tenho boas respostas para os pontos 2 e 3, pois estou procurando por mim :)


0

Supondo que as amostras positivas com amostragem alta tenham a "mesma distribuição" que no "conjunto original". À medida que o número de amostras positivas aumenta, poucas mudanças acontecem

1) o número de TruePositives (TP) aumenta para "todos os limites" e, como resultado, as razões TP / (TP + FP) e TP / (TP + FN) aumentam para todos os limites. Para que a área sob a RPC esteja aumentando.

2) a precisão esperada, também chamada precisão do modelo "burro", aumenta de ~ 1/2700 (no conjunto original) para ~ 1/2 (no caso de equilíbrio "ideal"). Supondo que seu modelo tenha um desempenho melhor do que o modelo "burro", a área sob a curva será mais de 0,00037 no "conjunto original" e mais de 0,5 no conjunto idealmente equilibrado.

3) ao treinar o modelo em um conjunto de dados aprimorado, alguns modelos podem "superestimar" amostras positivas.

Em relação às curvas ROC, sabe-se que as curvas ROC mostram pouco efeito das variações de distribuição de classe (o upscaling tem um efeito muito menor no FPR, enquanto você pode ver algum efeito no TPR).

Em relação ao foco na região de alta precisão / baixa recuperação, você pode otimizar com relação a uma função de custo em que os falsos positivos são penalizados mais do que os falsos negativos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.