J'ai un ensemble de données x, y que j'utilise pour construire une forêt aléatoire. Les données x sont un vecteur de valeurs qui inclut certaines NA. J'utilise donc rfImpute
pour gérer les données manquantes et créer une forêt aléatoire. Maintenant, j'ai une nouvelle observation invisible x (avec un NA) et je veux prédire y. Comment imputer la valeur manquante afin de pouvoir utiliser la forêt aléatoire que j'ai déjà développée? La rfImpute
fonction semble nécessiter x et y. Je n'ai que x à des fins de prédiction.
Ma question est similaire (mais différente) à cette question . Et par exemple, je peux utiliser le même jeu de données iris. Si j'ai correctement interprété le code dans la réponse à la question à laquelle je fais référence, le code iris.na[148, , drop=FALSE]
dans l'instruction iris.na2 = rbind(iris.imputed, iris.na[148, , drop=FALSE])
représente les nouvelles données qui incluent la Species
(la valeur Y). Dans mon problème, je ne saurais pas… Species
Je veux utiliser la forêt aléatoire pour prédire cela. J'aurais les 4 variables indépendantes, mais certaines pourraient être NA
pour une ligne donnée. Pour continuer l'analogie, imaginez que j'ai 3 des 4 variables (une manque). Je veux imputer cette valeur. Ensuite, je veux prédire les espèces que je ne connais pas.
En réponse au commentaire de Gung que je devrais ajouter une illustration, permettez-moi de le mettre en termes de l'ensemble de données sur l'iris. Imaginez que j'ai les données suivantes sur une fleur. Je sais qu'il est Sepal.Length
, Sepal.Width
, Petal.Length
mais pas Petal.Width
. Je voudrais imputer le Petal.Width
puis utiliser ces 4 valeurs dans un modèle RF pour prédire le Species
.
la source
Réponses:
Je pense que vous avez besoin d'une méthode d'imputation non supervisée. C'est celui qui n'utilise pas les valeurs cibles pour l'imputation. Si vous ne disposez que de quelques vecteurs de fonction de prédiction, il peut être difficile de découvrir une structure de données. Au lieu de cela, vous pouvez mélanger vos prédictions avec des vecteurs de fonction d'apprentissage déjà imputés et utiliser cette structure pour imputer à nouveau. Notez que cette procédure peut violer les hypothèses d'indépendance, donc envelopper toute la procédure dans une validation croisée externe pour vérifier un sur-ajustement sérieux.
Je viens d'apprendre sur missForest d'un commentaire à cette question . missForest semble faire l'affaire. J'ai simulé votre problème sur les données d'iris. (sans validation croisée externe)
la source