Eu tenho um conjunto de dados x, y que estou usando para criar uma floresta aleatória. Os dados x são um vetor de valores que inclui algumas NAs. Então, eu uso rfImpute
para manipular os dados ausentes e criar uma floresta aleatória. Agora eu tenho uma nova observação invisível x (com um NA) e quero prever y. Como imputo o valor ausente para que eu possa usar a floresta aleatória que já cresci? A rfImpute
função parece exigir x e y. Eu só tenho x para fins de previsão.
Minha pergunta é semelhante (mas diferente) a esta pergunta . E, por exemplo, eu posso usar o mesmo conjunto de dados da íris. Se eu interpretei corretamente o código na resposta à pergunta que refiro, o código iris.na[148, , drop=FALSE]
na declaração iris.na2 = rbind(iris.imputed, iris.na[148, , drop=FALSE])
representa os novos dados que incluem o Species
(o valor Y). No meu problema, eu não saberia o Species
- quero usar a floresta aleatória para prever isso. Eu teria as 4 variáveis independentes, mas algumas podem ser NA
para uma determinada linha. Para continuar a analogia, imagine que eu tenho 3 das 4 variáveis (uma está faltando). Eu quero imputar esse valor. Então eu quero prever as espécies que eu não conheço.
Em resposta ao comentário de Gung de que devo adicionar uma ilustração, deixe-me colocá-la em termos do conjunto de dados da íris. Imagine que tenho os seguintes dados em uma flor. Eu sei que é Sepal.Length
, Sepal.Width
, Petal.Length
, mas não o Petal.Width
. Eu gostaria de imputar o Petal.Width
e, em seguida, usar esses 4 valores dentro de um modelo de RF para prever o Species
.
fonte
Respostas:
Eu acho que você precisa de um método de imputação não supervisionado. Esse é um que não usa os valores de destino para imputação. Se você tiver apenas alguns vetores de recursos de previsão, poderá ser difícil descobrir uma estrutura de dados. Em vez disso, você pode misturar suas previsões com vetores de recursos de treinamento já imputados e usar essa estrutura para imputar mais uma vez. Observe que este procedimento pode violar suposições de independência, portanto, envolva todo o procedimento em uma validação cruzada externa para verificar se há excesso de ajuste.
Acabei de aprender sobre o missForest a partir de um comentário a esta pergunta . missForest parece fazer o truque. Simulei seu problema nos dados da íris. (sem validação cruzada externa)
fonte