Dados tendenciosos no aprendizado de máquina

18

Estou trabalhando em um projeto de Machine Learning com dados que já são (fortemente) influenciados pela seleção de dados.

Vamos supor que você tenha um conjunto de regras codificadas. Como você cria um modelo de aprendizado de máquina para substituí-lo, quando todos os dados que ele pode usar são dados que já foram filtrados por essas regras?

Para esclarecer as coisas, acho que o melhor exemplo seria a avaliação de risco de crédito : a tarefa é filtrar todos os clientes que provavelmente falharão no pagamento.

  • Agora, os únicos dados (rotulados) que você possui são de clientes que foram aceitos pelo conjunto de regras, porque somente após a aceitação você verá se alguém paga ou não (obviamente). Você não sabe o quão bom é o conjunto de regras e o quanto elas afetam a distribuição paga a não paga. Além disso, você tem dados não rotulados dos clientes que foram recusados, novamente devido ao conjunto de regras. Portanto, você não sabe o que teria acontecido com esses clientes se eles tivessem sido aceitos.

Por exemplo, uma das regras poderia ser: "Se a idade do cliente for <18 anos, não aceite"

O classificador não tem como aprender a lidar com clientes que foram filtrados por essas regras. Como o classificador deve aprender o padrão aqui?

Ignorar esse problema, levaria o modelo a ser exposto a dados nunca antes encontrados. Basicamente, quero estimar o valor de f (x) quando x estiver fora de [a, b] aqui.

Laksan Nathan
fonte
8
A maneira como isso geralmente é tratado na avaliação de risco de crédito é não filtrar uma certa proporção de candidatos pelas regras. Um pequeno número de candidatos é admitido aleatoriamente e marcado como tal.
Matthew Drury
É muito bom saber disso. Talvez eu possa até configurar coisas para fazer o mesmo.
Laksan Nathan
1
Quando explico esse problema a não especialistas, desenho uma nuvem (a realidade) e um polígono que se aproxima da nuvem (o modelo). Eu mostro os erros falsos positivos e falsos negativos. É visualmente claro que preciso dos dois erros para melhorar o modelo, para aproximar melhor a nuvem.
MSalters
Preparando minha apresentação agora. Essa analogia é realmente útil, obrigado!
Laksan Nathan
Isso é chamado de dilema exploração-exploração.
precisa saber é o seguinte

Respostas:

12

Você está certo em se preocupar - mesmo os melhores modelos podem falhar espetacularmente se a distribuição dos dados fora da amostra diferir significativamente da distribuição dos dados nos quais o modelo foi treinado / testado.

Eu acho que o melhor que você pode fazer é treinar um modelo nos dados rotulados que você possui, mas tente manter o modelo interpretável. Isso provavelmente significa apenas estar limitado a modelos simples. Em seguida, você pode tentar raciocinar como as regras aprendidas por seu modelo podem interagir com as regras anteriores que você possuía, em uma tentativa de estimar quão bem seu modelo pode funcionar na população não filtrada.

Por exemplo - suponha que seu modelo descubra que, no seu conjunto de dados rotulado, quanto mais jovem o cliente, maior a probabilidade de ele ter o padrão. Portanto, pode ser razoável supor que seu modelo funcionará bem se você removeu o filtro anterior de "Se a idade do cliente for <18 anos, não aceite".

rinspy
fonte
4

Não sei se entendi completamente essa pergunta, mas, pelo que entendi, você está perguntando como treinar um classificador para prever amostras fora do domínio das amostras que ele já viu. Isto é, de um modo geral e até onde sei, não é possível. A teoria do aprendizado de máquina baseia-se na idéia de "minimização empírica de riscos", que se resume a supor que seu conjunto de treinamento seja uma boa aproximação de sua verdadeira distribuição sobre amostras e rótulos. Se essa suposição for violada, não há realmente nenhuma garantia.

Você menciona dados não rotulados - não sei se isso resolveria seu problema, mas o aprendizado semi-supervisionado tem muitos métodos para tentar aprender classificadores, dados dados rotulados e não rotulados, e você pode considerar examiná-los (por exemplo, , SVMs transdutivos).

bibliolítico
fonte
Eu concordo, não há "solução" para o meu problema. Mas talvez haja alguns conselhos práticos sobre como trabalhar com esse tipo de problema.
Laksan Nathan
2

Suas regras podem fornecer uma maneira de executar o aumento de dados . Copie uma amostra positiva, altere a idade para 17 e marque-a como uma amostra negativa.

Este procedimento não será necessariamente trivial ou útil para todos os conjuntos de dados. Eu trabalho com dados da PNL e é difícil fazer bem nesse domínio. Por exemplo, se você tiver outros recursos correlacionados com a idade, poderá acabar com amostras irreais. No entanto, fornece uma maneira de expor o sistema a algo como as amostras que não foram inseridas no conjunto de dados.

Jim K.
fonte
Adicionar ruído aos dados é uma maneira de lidar com esse problema. Mas apenas em alguns casos em que os dados do cliente podem ser facilmente classificados. Eu não faria isso em um grau em que resultaria novamente em um conhecimento de domínio "enviesado" - percepção coletiva / subjetiva que leva a uma colisão retrospectiva de suposto conhecimento.
Laksan Nathan
2

Uma coisa que funcionou para nós em uma situação semelhante é fazer um pouco de aprendizado por reforço (explorar e explorar). No topo do modelo baseado em regras, executamos um explorador que, com uma pequena probabilidade, alteraria a resposta do modelo; portanto, em casos ocasionais em que o modelo não recomendaria um cartão a uma criança de 17 anos, o explorador revertia o modelo. decisão e emitir um cartão. Nesses casos ocasionais, você geraria dados de aprendizado para um modelo de aprendizado futuro, no qual ele poderá ser usado para decidir recomendar cartões para jovens de 17 anos, com base em se os que foram emitidos para o explorador por mais de 17 anos não forem o padrão e, portanto, é possível crie sistemas que possam funcionar fora dos vieses do seu modelo existente.

RandomStats
fonte
Como esses casos ocasionais estão ligados a um certo risco financeiro, seria uma abordagem passo a passo que potencialmente revelaria novo padrão a longo prazo. Basicamente, uma troca entre explorar e explorar, como você mencionou. Definitivamente, isso será considerado no projeto.
Laksan Nathan
2

Do ponto de vista prático, é difícil / irracional pedir a um modelo que preveja algo em casos que não são possíveis no sistema atual (sem almoço grátis).

Uma maneira de contornar esse problema é adicionar randomização ao sistema atual (implantado), por exemplo, adicionar a possibilidade de ignorar (algumas das) regras com uma probabilidade pequena e controlada (e, portanto, com um custo previsível).

Depois que você conseguir convencer as pessoas responsáveis ​​pelo sistema a fazer isso, poderá usar métodos de avaliação fora da política, como amostragem de importância, para fazer perguntas "e se". Por exemplo, qual seria o risco de crédito esperado se permitirmos que as pessoas atualmente excluídas pelas regras recebam crédito. Pode-se até simular o efeito do seu modelo de previsão (tendencioso) nessa população. Uma boa referência para esse tipo de método é o artigo de Bottou sobre aprendizado e raciocínio contrafactual.

oDDsKooL
fonte
Boa referência, obrigado. Vou levar tempo para passar por isso.
Laksan Nathan
1

A resposta estatística clássica é que, se o processo de seleção está nos dados e descrito pelo modelo ou seleção é aleatório, o modelo paramétrico o contempla corretamente. Veja o artigo de Donald Rubin, Inferência e dados ausentes (1976). Você precisa incluir o mecanismo de seleção de dados em seu modelo. Este é um campo em que a inferência paramétrica deve fazer melhor do que o puro aprendizado de máquina.

alegarra
fonte
1

Isso é semelhante ao dilema da vida após a morte: que proporção de boas e más ações (dados) é suficiente para chegar ao céu em vez do inferno (classe), depois que um morre (filtro!). Aqui, a morte serve como filtro, levando à falta de valores para um esquema de aprendizado supervisionado.

Quero desambiguar entre o problema de valor ausente e o problema de 'dados tendenciosos'. Não existem dados tendenciosos, existe um modelo tendencioso que explica esses dados, mas os dados em si não são tendenciosos, apenas faltam. Se os dados ausentes estiverem significativamente correlacionados aos dados observáveis, é inteiramente possível treinar um modelo imparcial e obter bons resultados preditivos.

Se os dados ausentes não estiverem completamente correlacionados com os observáveis, será um caso de 'você não sabe o que não sabe'. Você não pode usar métodos de aprendizado supervisionados ou não supervisionados. O problema está fora dos domínios da ciência de dados.

Portanto, por uma questão de solução significativa, vamos supor que os dados ausentes estejam correlacionados com os observáveis. Vamos explorar a referida correlação.

Existem vários algoritmos de mineração de dados que tentam resolver esse problema. Você pode tentar 'Métodos de conjunto', como algoritmos Bagging-n-Boosting ou 'mineração de padrão frequente', como Apriori e FP-growth. Você também pode explorar métodos nas Estatísticas robustas.

Poeira Estelar Dinâmica
fonte