Imputação com florestas aleatórias

8

Eu tenho duas perguntas sobre o uso de floresta aleatória (especificamente randomForest em R) para imputação de valor ausente (no espaço do preditor).

1) Como o algoritmo de imputação funciona - especificamente como e por que o rótulo de classe é necessário para a imputação? é a matriz de proximidade que serve para ponderar o valor médio para atribuir um valor ausente definido separadamente por classe?

2) Se o rótulo da classe é necessário para imputar valores ausentes - como isso pode ser usado para imputar valores ausentes para novos dados que você está tentando prever?

B_Miner
fonte

Respostas:

8

A idéia básica é fazer uma substituição rápida dos dados ausentes e melhorar iterativamente a imputação ausente usando a proximidade. Para trabalhar com dados não rotulados, apenas replique os dados com todos os rótulos e trate-os como dados rotulados.

A fração de árvores para as quais um par de observações compartilha um nó terminal fornece a matriz de proximidade e, portanto, usa explicitamente o rótulo da classe.

Conjunto de treinamento:

  1. Substitua os valores ausentes pelo valor médio.
  2. Repita até ficar satisfeito:

    uma. Usando valores imputados calculados até o momento, treine uma floresta aleatória.

    b. Calcule a matriz de proximidade.

    c. Usando a proximidade como o peso, imputar os valores ausentes como a média ponderada dos valores não ausentes.

Conjunto de teste:

  1. Se houver rótulos, use a imputação derivada dos dados de teste.
  2. Se os dados não estiverem rotulados, replique o conjunto de testes com uma cópia para cada rótulo de classe e continue como nos dados rotulados.

Aqui, a média (ponderada) refere-se à mediana (ponderada) para variáveis ​​numéricas e o modo (ponderado) para variáveis ​​categóricas. 4-6 iterações são recomendadas nas referências.

Documentação R (pdf) , manual do Breiman v4.0 (pdf) , página RF do Breiman

cohoz
fonte
2
Eu estaria interessado em saber mais sobre se esse algoritmo pode ser adaptado para imputação múltipla e se teria a quantidade certa de variabilidade e seria responsável pela incerteza do modelo de imputação.
31513 Frank Fellowski
1
Frank, pela descrição, duvido que tenha variabilidade suficiente. Desenhar o hot deck de uma classe de terminal pode funcionar. Se o algoritmo de crescimento de árvore tende a se ajustar demais, a variabilidade ainda será suprimida, mas não tanto quanto quando você estiver usando uma média condicional ou um quantil condicional. Novamente, esse é o meu pressentimento sobre como os métodos de imputação funcionam, em geral.
StasK
1
Cohoz, obrigado, isso confirma o que eu aprendi desde então. O problema é a floresta aleatória sendo construída usando a variável de destino. Existe um pacote missForest em R com papel que pode ser usado para imputação não supervisionada: ncbi.nlm.nih.gov/pubmed/22039212
B_Miner
Se eu perguntasse, sklearn.ensemble.RandomForestClassifierisso processa os dados de treinamento ou simplesmente os ignora e eu tenho que fazer isso sozinho?
Abhishta Gatya
3

Eu tentei usar a floresta aleatória para imputação múltipla no MICE para lidar com dados ausentes na análise de sobrevivência. Eu usei o bootstrapping para explicar a variabilidade da amostra nos modelos de imputação. Descobri que o Random Forest MICE teve um desempenho melhor que o paramétrico MICE quando houve interações entre variáveis ​​preditoras que não foram incluídas no modelo de imputação.

O pacote CALIBERrfimpute fornece uma função para imputação de floresta aleatória no MICE:
http://cran.r-project.org/web/packages/CALIBERrfimpute/index.html

Este é um artigo que descreve testes do método em dados simulados e um conjunto de dados epidemiológicos reais:
http://dx.doi.org/10.1093/aje/kwt312

user37364
fonte
3
Bem-vindo ao site, @ user37364. Obrigado por esses links. Você se importaria de elaborá-los um pouco, no caso do linkrot, para que futuros leitores possam julgar antes de clicar se quiserem persegui-los?
gung - Restabelece Monica
Olá @ user37364! Vi o artigo que você apresenta, no entanto, não consigo aplicar floresta aleatória com ratos no meu conjunto de dados. Eu postei uma pergunta aqui: stackoverflow.com/questions/24239595/… . Se você tem experiência com o MICE, tem alguma idéia de como resolver esses erros? Obrigado
psoares
Olá, acabei de encontrar o seu jornal e, em seguida, este tópico. Como o método se manteve durante o último ano e meio? Algumas rugas descobertas?
generic_user