My question is directed to techniques to deal with incomplete data during the classifier/model training/fitting.
For instance, in a dataset w/ a few hundred rows, each row having let's say five dimensions and a class label as the last item, most data points will look like this:
[0.74, 0.39, 0.14, 0.33, 0.34, 0]
A few might look something like this:
[0.21, 0.68, ?, 0.82, 0.58, 1]
So it's those types of data points that are the focus of this Question.
Meu motivo inicial para fazer essa pergunta foi um problema diretamente na minha frente; no entanto, antes de postar minha pergunta, pensei que poderia ser mais útil se eu a reformulasse para que as respostas fossem úteis para uma parte maior da Comunidade.
Como uma heurística simples, vamos dividir essas técnicas de manipulação de dados com base em quando durante o fluxo de processamento elas são empregadas - antes da entrada no classificador ou durante (ou seja, a técnica está dentro do classificador).
O melhor exemplo que posso pensar para o último é a técnica inteligente de "ramificação de três vias" usada nas Árvores de Decisão.
Sem dúvida, a categoria anterior é muito maior. As técnicas de que tenho conhecimento se enquadram em um dos grupos abaixo.
Ao revisar recentemente minhas anotações pessoais sobre "tratamento de dados ausentes", notei que tinha uma lista impressionante de técnicas. Eu apenas mantenho essas anotações para uma tranqüilidade geral e, caso um colega mais novo me pergunte como lidar com os dados ausentes. Na prática, na verdade, não uso nenhum deles, exceto o último.
Imputação : uma ampla rubrica para um conjunto de técnicas cujo denominador comum (acredito) é que os dados ausentes são fornecidos diretamente pelo mesmo conjunto de dados - substituição ao invés de estimativa / previsão.
Reconstrução : estimar os pontos de dados ausentes usando uma rede autoassociativa (apenas uma rede neural na qual os tamanhos das camadas de entrada e saída são iguais - em outras palavras, a saída tem a mesma dimensão da entrada); a idéia aqui é treinar essa rede em dados completos, depois alimentar padrões incompletos e ler os valores ausentes dos nós de saída.
Bootstrapping : (nenhum resumo necessário eu não deveria pensar, dado que é usado em outro lugar na análise estatística).
Negação : remova silenciosamente os pontos de dados com elementos ausentes / corrompidos do seu conjunto de treinamento e finja que eles nunca existiram.
modern
técnicas? Graças
mice
tem um bom artigo introdutório sobre JSS: jstatsoft.org/article/view/v045i03 . (Você deve achar a introdução útil, mesmo que não use R.). E o pacote R Amelia
possui uma bela vinheta que está incluída no pacote. Esses dois pacotes diferem em seus detalhes, mas ambos usam imputação múltipla.