Je préfère de beaucoup le caret pour sa capacité de réglage des paramètres et son interface uniforme, mais j'ai observé qu'il nécessite toujours des ensembles de données complets (c'est-à-dire sans NA) même si le modèle "nu" appliqué autorise les NA. C'est très gênant, car il faut appliquer des méthodes d'imputation laborieuses, qui ne sont pas nécessaires en premier lieu. Comment pourrait-on éluder l'imputation tout en utilisant les avantages du caret?
r
missing-data
data-imputation
caret
Fredrik
la source
la source
Réponses:
Pour la fonction train dans caret, vous pouvez passer le paramètre na.action = na.pass, et pas de prétraitement (ne spécifiez pas preProcess, laissez-le comme valeur par défaut NULL). Cela transmettra les valeurs NA non modifiées directement à la fonction de prédiction (cela entraînera l'échec des fonctions de prédiction qui ne prennent pas en charge les valeurs manquantes, pour celles dont vous auriez besoin de spécifier preProcess pour imputer les valeurs manquantes avant d'appeler la fonction de prédiction). Par exemple:
Dans ce cas, C5.0 gérera lui-même les valeurs manquantes.
la source
train
que l'na.action = na.pass
option soit définie, l'erreur suivante seSomething is wrong; all the RMSE metric values are missing
Avez-vous essayé de recoder les NA? Quelque chose> 3 écarts-types en dehors de vos données (par exemple -12345) devraient encourager C5.0 à les prévoir séparément, comme c'est le cas avec les NA.
la source
Je pense que votre solution serait d'imputer les valeurs tout en utilisant la fonction Predict () .
Voir
?predict.train
pour plus de détails.Vous pouvez utiliser
na.omit
pour permettre au curseur d'inscrire des valeurs. Par exemple:depuis http://www.inside-r.org/packages/cran/caret/docs/predict.train
Une autre solution consisterait à imputer lors du prétraitement des données:
depuis http://www.inside-r.org/node/86978
la source