Usando o ML para auxiliar a rotulagem humana no conjunto de dados com classes altamente desequilibradas


7

Existem problemas científicos com o uso do ML para ajudar na anotação humana?

Eu tenho um conjunto de dados sem rótulo de 3 classes em que apenas 1 em 500 elementos pertencem às 2 classes de interesse.

Os rótulos não são trivialmente discerníveis para todos os elementos dos dados não rotulados, no entanto, como a maioria dos elementos da classe majoritária é facilmente detectável por um NN simples, ele poderia ser usado para filtrar a maioria dos elementos da classe majoritária, reduzindo o número a cerca de 1 em 100 e aumentando a eficácia do tempo dos anotadores humanos em 50x. O conjunto de dados rotulado será usado para treinar, testar e validar um classificador.

No entanto, posso prever razões pelas quais isso poderia causar um problema especificamente do ponto de vista acadêmico:

  • Se os dados anotados não forem representativos devido ao viés no ML usado antes da anotação humana, o classificador poderá ter dificuldade para generalizar
  • O uso de um limpador de dados ML, que não se baseia em regras justificáveis ​​fornecidas pelo homem, coloca uma caixa preta no início do processo de análise de dados
  • Apenas a anotação de uma pequena proporção da classe altamente prevalente torna o conjunto de dados muito seletivo. Isso convidaria críticas ao uso indevido desse viés (isto é, manipulação para uma hipótese desejada)

Todos os pensamentos apreciados

Respostas:


1

Eu acho que a chave é ter em mente o que você realmente quer. Esta é uma competição de kaggle? Então, com certeza, sua abordagem parece bem.

Se isso é para um trabalho acadêmico ou trabalho médico que será colocado em campo, e você deseja algo que generalize bem e passe na revisão por pares, não acho que essa seja uma boa abordagem. Porque você não pode simplesmente ignorar algumas de suas amostras.

Além da 'validade' ou 'correção' da abordagem, ela também pode não ajudar tanto quanto você pensa. Parte do problema é o pré-classificador que você está propondo. É 100% preciso? Como você sabe, se está descartando muitos para realmente analisar. O problema é que, se não for 100,0% exato, você estará perdendo seus exemplos de treinamento mais valiosos descartando-os, porque são eles que estão enganando o algoritmo atual.

Se você usar permanentemente esse pré-classificador, é válido ter essa etapa e é apenas parte de toda a sua 'caixa preta'. Mas, então, você precisa relatar com precisão os falsos negativos que está descartando como parte de sua avaliação geral (e de preferência sua função geral de perda, para que você possa otimizá-la corretamente)


Poderia uma amostra representativa dos dados originais validar as amostras não representativas selecionadas pelo pré-classificador? Haverá em torno de pontos de dados 10M, se um 10K aleatória foram anotados, eles poderiam ser usados para validar a 10K escolhido pelo pré-classificador a ser anotada pelo ser humano
Aidan Connelly

Estou tendo problemas para seguir sua descrição. Você está dizendo "amostra representativa" e "anotação aleatória de 10.000", que soa como um passo na direção certa. Mas então você diz 10k escolhido pelo pré-classificador. Novamente, isso é bom para ajudar a localizar uma parte dos exemplos mais fáceis de encontrar, mas não vejo como os primeiros 10k (que teriam ~ 20 das raras classes) "validariam" os 10k escolhidos.
Jeff Ellen

0

Se existe um modelo que pode rotular seus dados para você, por que treinar um?

Eu diria que usar outro modelo para rotular dados para um modelo é ruim. Primeiro, se existe um modelo melhor que pode rotular um conjunto de dados, por que não usar esse bom modelo? Segundo, se as classes são altamente desequilibradas, esse é muito mais o motivo pelo qual você deseja rótulos precisos para que seu modelo possa fazer o melhor. Caso contrário, você está apenas confundindo, por que você faria isso?

A rotulagem de dados é árdua para os seres humanos, mas é por isso que estamos tentando tornar as máquinas boas o suficiente para que, em algum momento, paremos de fazer isso.

Se você deseja uma maneira mais fácil, comece rotulando apenas a classe minoritária e depois rotule um número igual das outras classes e treine usando isso, para que seu conjunto de dados não fique mais desequilibrado. Por exemplo, digamos que você tenha 100 amostras 10, 40, 50 são o número de amostras em cada classe. Então você começará rotulando o 10, a amostra 10 do 40 e depois o 50 e rotulá-los também; em seguida, treine um modelo em um conjunto de dados de suas 30 amostras imparciais. Este método tem seus prós e contras, mas vou parar por aqui, pois essa não era sua pergunta original.


Muito obrigado pela sua resposta! No entanto, a questão não se refere ao uso de ML a etiqueta de dados, em vez de ajudar o usuário na rotulagem de dados, através de aprendizagem activa ( en.m.wikipedia.org/wiki/Active_learning_(machine_learning) )
Aidan Connelly

Certo, mesmo no aprendizado ativo, sugiro que você rotule as minorias e parte das maiorias e deixe o resto das maiorias. Porém, certifique-se de escolher um limite que faça sentido para seu objetivo, ou seja, pergunte-me apenas se você tiver menos de 90% de confiança, mas é altamente dependente do caso de uso. Você também pode considerar o custo de criar uma estrutura de aprendizado ativa em vez de rotular 500; isso é tempo e experiência aprendidos.
plumSemPy

Na aprendizagem ativa, o ser humano faz parte do algoritmo, porque a rotulagem é cara. Essa é a configuração aqui, mas descartando exemplos e sem considerar quantas das duas classes minoritárias foram removidas pelo primeiro pré-classificador significa que não é mais um aprendizado ativo. O aprendizado ativo seria manter todos os que estavam por perto e informar sobre eles nas métricas finais.
Jeff Ellen

0

É verdade que geralmente mais dados levam a melhores decisões. No seu caso, o que você está tentando fazer é acelerar o processo de rotulagem e a maneira como você propõe fazê-lo é válida. Como a pergunta é quais exemplos se deve rotular manualmente e é verdade que usar um sistema para descartar exemplos "desinteressantes" com alta confiança faz sentido. Não se trata de ignorar exemplos, mas de dar prioridade a alguns deles que não são triviais.

Ter um classificador que generalize bem a verdadeira distribuição dos dados de treinamento é outro tópico. Você pode garantir isso avaliando o classificador em um conjunto de holdouts dividido de forma estratificada. Como é mais barato obter amostras de uma das classes, você pode equilibrar o treinamento definido em uma etapa posterior (por amostragem acima / abaixo), depois de rotular os dados.


11
Discordo. Você precisa ter em mente o objetivo final, não o objetivo intermediário. O objetivo final é obter mais dados e esperar que isso leve a melhores decisões? Ou o objetivo final é ter um classificador que generalize bem? Se a resposta for um classificador que generalize bem, será necessário mais cuidado.
Jeff Ellen

Dois pontos: nas perguntas em linha, melhores decisões são iguais a um classificador que generaliza bem. Além disso, a questão é quais exemplos se deve rotular manualmente e é verdade que usar um sistema para descartar exemplos "desinteressantes" com alta confiança faz sentido. Não se trata de ignorar exemplos, mas de quais exemplos devem ser rotulados manualmente com prioridade.
geompalik
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.