Suponha que tenhamos um conjunto de dados com milhões de linhas e milhares de colunas e a tarefa seja a classificação binária. Quando executamos um modelo de regressão logística, o desempenho é muito melhor que o esperado, por exemplo, classificação quase perfeita.
Suspeitamos que existem algumas variáveis de trapaça nos dados. Como posso detectá-lo rapidamente?
Aqui, trapacear variáveis significa uma variável que é muito indicativa da resposta e não devemos usá-la. Por exemplo, usamos se uma pessoa faz uma chamada de atendimento ao cliente para prever se uma pessoa comprou ou não um produto.
algorithms
linear
large-data
high-dimensional
Haitao Du
fonte
fonte
Respostas:
Isso às vezes é chamado de "vazamento de dados". Há um bom artigo sobre isso aqui:
Vazamento na mineração de dados: formulação, detecção e prevenção
O artigo acima tem muitos exemplos divertidos (e horripilantes) de vazamento de dados, por exemplo, uma competição de previsão de câncer em que se constatou que os números de identificação dos pacientes tinham uma previsão quase perfeita do câncer futuro, sem querer devido à forma como os grupos foram formados ao longo do estudo .
Não acho que exista uma maneira clara de identificar o vazamento de dados. O documento acima tem algumas sugestões, mas em geral é muito específico para problemas. Como exemplo, você pode definitivamente considerar apenas as correlações entre seus recursos e o destino. No entanto, às vezes você sentirá falta das coisas. Por exemplo, imagine que você está criando um detector de spam de bot para um site como o stackexchange, onde, além de recursos de coleta como tamanho da mensagem, conteúdo etc., você pode potencialmente coletar informações sobre se uma mensagem foi sinalizada por outro usuário. No entanto, se você deseja que o seu detector de bot seja o mais rápido possível, não precisará confiar nos sinalizadores de mensagens gerados pelos usuários. Naturalmente, os bots de spam acumulariam uma tonelada de sinalizadores de mensagens geradas pelo usuário, portanto seu classificador pode começar a confiar nesses sinalizadores, e menos ainda no conteúdo das mensagens. Dessa forma, você deve considerar a remoção de sinalizadores como um recurso para poder marcar bots mais rapidamente do que o esforço do usuário de origem coletiva, ou seja, antes que um grande público seja exposto a suas mensagens.
Outras vezes, você terá um recurso muito estúpido que está causando sua detecção. Há uma boa anedota aqui sobre uma história de como o Exército tentou fabricar um detector de tanque, que tinha precisão quase perfeita, mas acabou detectando dias nublados porque todas as imagens de treinamento com tanques foram tiradas em um dia nublado e todas as imagens de treinamento sem tanques foi levado em um dia claro. Um artigo muito relevante sobre isso é: "Por que devo confiar em você?": Explicando as previsões de qualquer classificador - Ribeiro, et. al.
fonte
Uma maneira de detectar variáveis de trapaça é construir um modelo de árvore e observar as primeiras divisões. Aqui está um exemplo simulado.
fonte