Quelles sont les raisons théoriques de ne pas gérer les valeurs manquantes? Machines à gradient progressif, les arbres de régression gèrent les valeurs manquantes. Pourquoi Random Forest ne fait-il pas cela?
random-forest
missing-data
gbm
Fedorenko Kristina
la source
la source
party
package R. Un article de blog ici: exegetic.biz/blog/2013/05/…Réponses:
Gradient Boosting Trees utilise des arbres CART (dans une configuration standard, telle que proposée par ses auteurs). Les arbres CART sont également utilisés dans les forêts aléatoires. Ce que @ user777 a dit est vrai, les arbres RF gèrent les valeurs manquantes soit par imputation avec moyenne, soit par moyenne grossière / mode, soit par une moyenne / un mode basé sur les proximités. Ces méthodes ont été proposées par Breiman et Cutler et sont utilisées pour la RF. C’est une référence des auteurs Valeurs manquantes dans l’ensemble de formation .
Cependant, on peut construire un GBM ou RF avec un autre type d'arbre de décision. Le remplacement habituel de CART est le C4.5 proposé par Quinlan. En C4.5, les valeurs manquantes ne sont pas remplacées dans le jeu de données. Au lieu de cela, la fonction d'impureté calculée prend en compte les valeurs manquantes en pénalisant le score d'impuretés avec le rapport des valeurs manquantes. Lors du test, définissez l'évaluation dans un nœud comportant un test avec une valeur manquante. La prédiction est construite pour chaque nœud enfant et agrégée ultérieurement (par pondération).
Maintenant, dans de nombreuses implémentations, C4.5 est utilisé à la place de CART. La raison principale est d'éviter des calculs coûteux (CART a des approches statistiques plus rigoureuses, qui nécessitent plus de calculs), les résultats semblent être similaires, les arbres résultants sont souvent plus petits (puisque CART est binaire et C4.5 pas). Je sais que Weka utilise cette approche. Je ne connais pas d'autres bibliothèques, mais je m'attends à ce que ce ne soit pas une situation singulière. Si tel est le cas avec votre implémentation GBM, alors ce serait une réponse.
la source
RF fait les valeurs manquantes de la poignée, mais pas de la même manière que CART et d' autres algorithmes d'arbres de décision similaires font. User777 décrit correctement les deux méthodes utilisées par RF pour traiter les données manquantes (imputation médiane et / ou mesure basée sur la proximité), tandis que Frank Harrell décrit correctement le traitement des valeurs manquantes dans CART (fractures de substitution). Pour plus d'informations, voir les liens sur la gestion des données manquantes pour CART (ou son cousin FOSS: RPART ) et RF .
Une réponse à votre question est clairement couverte, à mon humble avis, dans l’article de 2008 d’Ishwaran et al., Intitulé Random Survival Forests . Ils fournissent l'explication plausible suivante pour expliquer pourquoi RF ne traite pas les données manquantes de la même manière que les classificateurs CART ou similaires:
Ceci est un aparté, mais pour moi, cela remet en question ceux qui prétendent que RF utilise un ensemble de modèles CART. J'ai vu cette affirmation dans de nombreux articles, mais je n'ai jamais vu de telles déclarations provenir d'un texte faisant autorité sur RF. D'une part, les arbres d'un RF sont cultivés sans élagage , ce qui n'est généralement pas l'approche standard lors de la construction d'un modèle CART. Une autre raison serait celle à laquelle vous faites allusion dans votre question: CART et d'autres ensembles d'arbres de décision gèrent les valeurs manquantes, alors que [l'original] RF ne le fait pas, du moins pas en interne comme le fait CART.
En gardant à l’esprit ces mises en garde, on pourrait dire que RF utilise un ensemble d’ arbres décisionnels de type CART (c’est -à- dire un groupe d’arbres non élagués, poussés à leur maximum, sans possibilité de traiter les données manquantes par fractionnement par substitution). C’est peut-être une de ces différences sémantiques, mais c’est une différence qui mérite d’être signalée.
EDIT : Dans ma note d’accompagnement, qui n’est pas liée à la question posée, j’ai déclaré: "Je n’ai jamais vu de telles déclarations provenir d’un texte faisant autorité sur RF". Breiman DID précise que les arbres de décision CART sont utilisés dans l'algorithme RF d'origine:
Source: p.9 de Forêts aléatoires. Breiman (2001)
Cependant, je reste toujours (quoique de manière plus précaire) sur la notion qu'il s'agisse d'arbres de décision de type CART dans la mesure où ils sont cultivés sans élagage, alors qu'un CART n'est normalement jamais exécuté dans cette configuration, car il saturera presque certainement vos données ( d'où la taille en premier lieu).
la source
La forêt aléatoire gère les données manquantes et elle le fait de deux manières différentes:
1) Sans imputation des données manquantes, mais fournissant des déductions. 2) Imputation des données. Les données imputées sont ensuite utilisées pour l'inférence.
Les deux méthodes sont implémentées dans mon paquet R randomForestSRC (co-écrit avec Udaya Kogalur). Premièrement, il est important de se rappeler que, les forêts aléatoires utilisant la sélection aléatoire des caractéristiques, les méthodes de données manquantes traditionnelles utilisées par des arbres individuels (CART, etc.) ne s'appliquent pas. Cette remarque a été faite dans Ishwaran et al. (2008), "Random Survival Forests", Annals of Applied Statistics , 2 , 3 et bien articulé par l'un des commentateurs.
La méthode (1) est une méthode "d'imputation à la volée" (OTFI). Avant de scinder un nœud, les données manquantes pour une variable sont imputées en extrayant de manière aléatoire des valeurs à partir de données in-bag non manquantes. Le but de ces données imputées est de permettre l’affectation de cas aux noeuds filles au cas où le noeud serait divisé sur une variable avec des données manquantes. Les données imputées ne sont toutefois pas utilisées pour calculer la statistique fractionnée qui utilise uniquement des données non manquantes. Après la scission d'un nœud, les données imputées sont réinitialisées à manquantes et le processus est répété jusqu'à ce que les nœuds terminaux soient atteints. OTFI préserve l’intégrité des données hors du sac et par conséquent les valeurs de performance telles que l’importance variable (VIMP) restent non biaisées. L’algorithme OTFI a été décrit dans Ishwaran et al. (2008) et implémenté dans le package randomSurvivalForest, à la retraite.
La méthode (2) est implémentée à l'aide de la fonction "impute" de randomForestSRC. Des méthodes de fractionnement non supervisées, randomisées et multivariées sont disponibles pour l'imputation des données. Par exemple, le fractionnement multivarié généralise la méthode d'imputation très réussie missForest ( Stekhoven & Bühlmann (2012), "MissForest - imputation non paramétrique des valeurs manquantes pour les données de type mixte", Bioinformatics , 28 , 1 ). L'appel de la fonction impute avec des données manquantes renverra une trame de données imputée pouvant être ajustée à l'aide de la fonction de forêt principale "rfsrc".
Une comparaison détaillée des différents algorithmes de données manquantes de forêt mis en œuvre en utilisant "impute" a été décrite dans un article récent avec Fei Tang "Algorithmes de données manquantes de forêt aléatoire", 2017 . Je recommande de consulter les fichiers d'aide de "rfsrc" et "impute" de randomForestSRC pour plus de détails sur l'imputation et OTFI.
la source
Le partitionnement récursif utilise des fractionnements de substitution basés sur des prédicteurs non manquants corrélés au prédicteur possédant la valeur manquante pour une observation. En théorie, il semblerait possible d'implémenter des forêts aléatoires qui utilisent la même idée. Je ne sais pas si un logiciel de forêt aléatoire l'a fait.
la source
Random Forest dispose de deux méthodes pour gérer les valeurs manquantes, selon Leo Breiman et Adele Cutler, qui les ont inventées.
La première est rapide et sale: elle ne fait que renseigner la valeur médiane pour les variables continues ou la valeur non manquante la plus courante par classe .
La deuxième méthode remplit les valeurs manquantes, puis exécute RF, puis pour les valeurs continues manquantes, RF calcule la moyenne pondérée en fonction de la proximité des valeurs manquantes. Ensuite, ce processus est répété plusieurs fois. Le modèle est ensuite formé une dernière fois en utilisant le jeu de données imputé par RF.
la source
Au lieu d'utiliser des valeurs médianes, etc., je vous recommande vivement de consulter le package missRanger (actuellement en développement sur Github) ou le package R, missForest). Ces deux logiciels utilisent des forêts aléatoires pour commencer par imputer vos données à l’aide d’une méthode similaire à l’imputation multiple au moyen d’équations chaînées (MICE). Ce serait la méthode d'imputation appropriée à utiliser car elle correspond étroitement à votre modèle d'analyse actuel. Vous pouvez ensuite utiliser toutes vos données sans avoir à vous soucier de supprimer des lignes individuelles en raison d'observations manquantes. De plus, les valeurs imputées seront beaucoup plus réalistes que la simple sélection de médianes ou de modes.
Vous pouvez utiliser un seul jeu de données imputé rempli pour vos analyses, mais le meilleur moyen d’incorporer l’incertitude concernant les valeurs manquantes consiste à exécuter plusieurs exécutions de ces méthodes d’imputation, puis à estimer votre modèle pour chacun des jeux de données résultants (c.-à-d. Plusieurs imputation) et ensuite combiner les estimations en utilisant les règles de Rubin (voir M outils du package R).
la source
Pour CART, vous pouvez appliquer l’approche MIA (manque d’attributs). Autrement dit, pour les prédicteurs catégoriels, votre code manque dans une catégorie distincte. Pour les prédicteurs numériques, vous créez deux nouvelles variables pour chaque variable avec des valeurs manquantes: une pour coder les manquements sous la forme -Inf et une autre pour les manquements sous la forme + Inf. Ensuite, vous appliquez une fonction de forêt aléatoire comme d'habitude à vos données.
Avantages du MIA: 1) pas cher du point de vue du calcul, 2) ne produit pas de multiples ensembles de données et donc des modèles, contrairement à l'imputation multiple (la littérature sur l'imputation des données manquantes convient généralement qu'un seul jeu de données imputé ne suffit pas), 3) ne nécessite pas vous choisissez une méthode statistique et / ou un modèle pour imputer les données.
Les fonctions
ctree()
et lescforest()
paquetages partykit permettent d’appliquer MIA en passantctree_control(MIA = TRUE)
à leurscontrol
arguments.Le programme RuleFit de Jerome Friedman semble utiliser MIA pour traiter les manquements, voir https://statweb.stanford.edu/~jhf/r-rulefit/rulefit3/RuleFit_help.html#xmiss .
On trouvera une description de l'approche MIA dans Twala et al. (2008):
Twala, BETH, Jones, MC et Hand, DJ (2008). Bonnes méthodes pour gérer les données manquantes dans les arbres de décision. Pattern Recognition Letters, 29 (7), 950-956.
la source