Je sais que la rpart
fonction de R conserve les données dont elle aurait besoin pour implémenter la division multivariée, mais je ne sais pas si elle effectue réellement des divisions multivariées. J'ai essayé de le rechercher en ligne en consultant les rpart
documents, mais je ne vois aucune information indiquant qu'il peut le faire ou le fait. Quelqu'un est sûr?
r
multivariate-analysis
cart
chubbsondubs
la source
la source
Réponses:
Rpart ne fournit que des divisions univariées. Je crois, sur la base de votre question, que vous ne connaissez pas entièrement la différence entre une méthode de partitionnement univarié et une méthode de partitionnement multivarié. J'ai fait de mon mieux pour expliquer cela ci-dessous, ainsi que pour fournir des références pour de plus amples recherches et pour suggérer quelques packages R pour implémenter ces méthodes.
Rpart est un classificateur basé sur un arbre qui utilise un partitionnement récursif. Avec les méthodes de partitionnement, vous devez définir les points dans vos données où un fractionnement doit être effectué. L'algorithme rpart dans R fait cela en trouvant la variable et le point qui divise (et donc réduit) le RSS le mieux. Étant donné que les divisions ne se produisent que le long d'une variable à la fois, il s'agit de divisions univariées. Un fractionnement multivarié est généralement défini comme une partition simultanée le long de plusieurs axes (donc multivariée), c'est-à-dire que le premier nœud fractionné peut se diviser selon l'âge> 35, le deuxième nœud peut se diviser selon le revenu> 25 000 et le troisième nœud peut se diviser le long des villes à l'ouest de le Mississippi. Les deuxième et troisième nœuds sont répartis sur des sous-ensembles plus petits des données globales.Par conséquent, dans le deuxième nœud, le critère de revenu divise le RSS uniquement pour les personnes âgées de plus de 35 ans, il ne s'applique pas aux observations non trouvées dans ce nœud, il en va de même pour le critère Villes. On pourrait continuer à faire cela jusqu'à ce qu'il y ait un nœud pour chaque observation dans votre jeu de données (rpart utilise une fonction de taille de compartiment minimale en plus d'un critère de taille de nœud minimum et d'un paramètre cp qui est le minimum que la valeur r au carré doit augmenter afin de continuer l'ajustement).
Une méthode multivariée, telle que la méthode d'induction des règles patient (le package prim dans R) se diviserait simultanément en sélectionnant, par exemple, Toutes les observations où le revenu était supérieur à 22 000, l'âge> 32 et les villes à l'ouest d'Atlanta. La raison pour laquelle l'ajustement peut être différent est que le calcul de l'ajustement est multivarié au lieu d'univarié, l'ajustement de ces trois critères est calculé sur la base de l'ajustement simultané des trois variables sur toutes les observations répondant à ce critère plutôt que sur une partition itérative basée sur divisions univariées (comme avec rpart).
Il existe différentes croyances en ce qui concerne l'efficacité des méthodes de partitionnement univarié par rapport aux méthodes multivariées. En général, ce que j'ai vu dans la pratique, c'est que la plupart des gens préfèrent le partitionnement univarié (comme rpart) à des fins explicatives (il n'est utilisé que dans la prédiction lorsqu'il s'agit d'un problème où la structure est très bien définie et la variation entre les variables est assez constante, c'est pourquoi ils sont souvent utilisés en médecine). Les modèles d'arbre univariés sont généralement combinés avec des apprenants d'ensemble lorsqu'ils sont utilisés pour la prédiction (c.-à-d. Une forêt aléatoire). Les personnes qui utilisent le partitionnement ou le clustering multivarié (qui est très étroitement lié au partitionnement multivarié) le font souvent pour des problèmes complexes que les méthodes univariées s'adaptent très mal, et le font principalement pour la prédiction, ou pour regrouper les observations en catégories.
Je recommande fortement le livre de Julian Faraway, Extending the Linear Model with R. Le chapitre 13 est entièrement consacré à l'utilisation des arbres (tous univariés). Si vous êtes intéressé par les méthodes multivariées, Elements of Statistical Learning par Hastie et. al, fournit un excellent aperçu de nombreuses méthodes multivariées, y compris PRIM (bien que Friedman à Stanford ait son article original sur la méthode publié sur son site Web), ainsi que les méthodes de clustering.
En ce qui concerne les packages R pour utiliser ces méthodes, je pense que vous utilisez déjà le package rpart, et j'ai mentionné le package prim ci-dessus. Il existe plusieurs routines de clustering intégrées, et j'aime beaucoup le package de parti mentionné par une autre personne dans ce fil, en raison de sa mise en œuvre de l'inférence conditionnelle dans le processus de construction de l'arbre de décision. Le package optpart vous permet d'effectuer un partitionnement multivarié, et le package mvpart (également mentionné par quelqu'un d'autre) vous permet d'effectuer des arborescences rpart multivariées, mais je préfère personnellement utiliser partDSA, qui vous permet de combiner les nœuds plus bas dans votre arborescence pour empêcher le partitionnement de similaires observations, si je pense que la partie et la partie ne sont pas adéquates pour mes besoins de modélisation.
Remarque: Dans mon exemple d'arbre rpart au paragraphe 2, je décris comment le partitionnement fonctionne avec les numéros de noeud, si l'on devait dessiner cet arbre, le partitionnement se déroulerait vers la gauche si la règle de la division était vraie, cependant dans RI croire que la scission se déroule réellement vers la droite si la règle est vraie.
la source
Pour autant que je sache, ce n'est pas le cas; mais je ne l'ai pas utilisé depuis un moment. Si je vous comprends bien, vous voudrez peut-être plutôt regarder le package mvpart .
la source
Votre terminologie prête à confusion. Parce que vous voulez dire des divisions utilisant plus d'une variable, ou un arbre qui permet une réponse multivariée (par opposition à une réponse univariée)? Je suppose que ce dernier.
F. Tusell vous a indiqué le package mvpart, qui ajoute un critère multivarié d'impureté de nœud qui est évalué pour toutes les divisions possibles à chaque étape de la construction de l'arborescence.
Une alternative est le paquet parti , dont la fonction
ctree()
peut gérer des réponses multivariées.la source
rpart
, la division binaire est formée en recherchant toutes les variables et tous les emplacements de division possibles dans chaque variable.rpart
stocke également des informations sur les divisions de substitution qui peuvent être utilisées lorsqu'il manque des données dans vos variables. est-ce que cela aide?rpart
ne gère pas ce cas.Les divisions multivariées telles que définies dans le livre CART ne sont pas implémentées dans
rpart
. Le logiciel CART de Salford Systems possède cette fonctionnalité, mais AFAIK utilise un algorithme propriétaire sous licence de Breiman, Friedman et al.la source