Cela fait un moment que je n'ai pas regardé le partitionnement des arbres. La dernière fois que j'ai fait ce genre de choses, j'aime faire la fête en R (créé par Hothorn). L'idée de l'inférence conditionnelle via l'échantillonnage est logique pour moi. Mais rpart avait également un attrait.
Dans l'application actuelle (je ne peux pas donner de détails, mais cela implique d'essayer de déterminer qui ira en prison parmi un large échantillon de personnes arrêtées), je ne peux pas utiliser des méthodes avancées comme les forêts aléatoires, l'ensachage, le boosting, etc. règle.
J'aimerais également avoir un contrôle manuel sur les nœuds divisés, comme recommandé dans Zhang & Singer (2010) Recursive Partitioning and Applications . Le logiciel gratuit fourni avec ce livre le permet, mais est par ailleurs plutôt primitif dans sa saisie utilisateur.
Des recommandations ou suggestions?
la source
[NB: Voir la mise à jour 1 ci-dessous.] Je trouve que la méthodologie de
rpart
est beaucoup plus facile à expliquer qu'àparty
. Ce dernier est cependant beaucoup plus sophistiqué et susceptible de donner de meilleurs modèles. La façon dont j'explique parfoisparty
est d'en parler comme base pour produire des modèles linéaires locaux (ou GLM). Je construis pour cela en soulignant que les résultats pourrpart
sont constants à travers tous les éléments qui tombent dans le nœud feuille, c'est-à-dire la boîte / région délimitée par les divisions. Même s'il pourrait y avoir des améliorations via des modèles locaux, vous n'obtenez rien d'autre qu'une prédiction constante.En revanche,
party
développe les scissions pour potentiellement optimiser les modèles pour les régions. Il utilise en fait un critère différent de l'optimalité du modèle, mais vous devez évaluer votre propre capacité à expliquer la différence pour déterminer si vous pouvez bien l'expliquer. Les articles sont assez accessibles pour un chercheur, mais peuvent être assez difficiles pour quelqu'un qui ne veut pas envisager des méthodes plus simples comme les forêts aléatoires, le boost, etc. Mathématiquement, je pense queparty
c'est plus sophistiqué ... Néanmoins, les modèles CART sont plus faciles à expliquer, à la fois en termes de méthodologie et de résultats, et ceux-ci fournissent un tremplin décent pour l'introduction de modèles d'arbres plus sophistiqués.En bref, je dirais que vous devez faire
rpart
pour la clarté, et vous pouvez utiliserparty
pour la précision / performance, mais je ne présenterais pasparty
sans introduirerpart
.Mise à jour 1. J'ai basé ma réponse sur ma compréhension de
party
ce qu'il était il y a un an ou deux. Il a grandi un peu, mais je modifierais ma réponse pour dire que je recommanderais toujoursrpart
pour sa brièveté et son héritage, si "non fantaisie" devait être un critère important pour votre client / collaborateur. Pourtant, j'essaierais de migrer vers plus de fonctionnalitésparty
après avoir présenté quelqu'un àrpart
. Il vaut mieux commencer petit, avec des fonctions de perte, des critères de fractionnement, etc., dans un contexte simple, avant d'introduire un package et une méthodologie qui impliquent des concepts beaucoup plus impliqués.la source
party
paquet peut faire. Laparty
fonction pure fait juste un seul arbre simple commerpart
avec le vote majoritaire dans les feuilles. Lamob
fonction dansparty
est ce qui construit des arbres avec des modèles plus complexes dans les feuilles (et choisit les divisions en fonction de l'instabilité des paramètres.)mob
ou si le reste du paquet a un peu augmenté - je ne me souviens pas avoir vu des forêts aléatoires auparavant, par exemple. Je vais réviser ma réponse ...ctree
faire un seul arbre,cforest
de faire une forêt aléatoire etmob
de faire des feuilles basées sur le modèle. Et pour info, cforest est amusant, mais horriblement lent à prévoir.mob
peut-être était là depuis le début, ou du moins est venu aprèsctree
, je suppose. Il existe depuis 2009 ou avant. Quoi qu'il en soit, cela montre que nous pouvons tous apprendre quelque chose de nouveau sur SE. :)