Arbres d'inférence conditionnels vs arbres de décision traditionnels

97

Quelqu'un peut-il expliquer les principales différences entre les arbres d'inférence conditionnels ( ctreedu partypaquet dans R) par rapport aux algorithmes d'arbre de décision plus traditionnels (comme rpartdans R)?

  1. Qu'est-ce qui différencie les arbres en CI?
  2. Forces et faiblesses?

Mise à jour: J'ai examiné le document de Horthorn et al auquel Chi fait référence dans les commentaires. Je n'ai pas été capable de le suivre complètement - quelqu'un peut-il expliquer comment les variables sont sélectionnées à l'aide de permutations (par exemple, qu'est-ce qu'une fonction d'influence)?

Merci!

B_Miner
la source
1
Vous voulez dire une explication qui va au-delà de ce qui est décrit dans le document de Hothorn ? Je me souviens de jolies illustrations de Carolin Strobl à la conférence IMPS2009 ; Je pense qu'il y a des documents sur son site Web.
chl
Ce lien montre entre les différentes formes comparision de paquets d'arbres de décision r-bloggers.com/a-brief-tour-of-the-trees-and-forests~~V~~singular~~3rd
Archpaul

Réponses:

93

Pour ce que ça vaut:

à la fois rpartet de ctreemanière récursive effectuer des divisions univariées de la variable dépendante en fonction des valeurs d'un ensemble de covariables. rpartet les algorithmes associés utilisent généralement des mesures d’information (telles que le coefficient de Gini ) pour sélectionner la covariable actuelle.

ctree, selon ses auteurs (voir les commentaires de chl ), évite le biais de sélection de variables suivant rpart(et méthodes associées): ils ont tendance à sélectionner des variables qui ont beaucoup de divisions ou de valeurs manquantes. Contrairement aux autres, ctreeutilise une procédure de test de signification afin de sélectionner des variables au lieu de sélectionner la variable qui maximise une mesure d’information (par exemple, le coefficient de Gini).

Le test de signification, ou mieux: les tests de signification multiples calculés à chaque début d’algorithme (choisir covariable - choisir scission - recurse) sont des tests de permutation , c’est-à-dire que "la distribution de la statistique du test sous hypothèse nulle est obtenue en calculant toutes les valeurs possibles de la statistique de test lors du réarrangement des étiquettes sur les points de données observés. " (extrait de l'article de Wikipédia).

Passons maintenant à la statistique de test: elle est calculée à partir des transformations (y compris identité, c'est-à-dire sans transformation) de la variable dépendante et des covariables. Vous pouvez choisir parmi plusieurs transformations pour les deux variables. Pour la variable dépendante (DV), la transformation s'appelle la fonction d'influence pour laquelle vous vous interrogiez.

Exemples (tirés du papier ):

  • si la DV et les covariables sont numériques, vous pouvez sélectionner des transformations d'identité et calculer des corrélations entre la covariable et toutes les permutations possibles des valeurs de la DV. Ensuite, vous calculez la valeur p à partir de ce test de permutation et le comparez aux valeurs p pour les autres covariables.
  • si DV et les covariables sont nominaux (catégoriques non ordonnées), la statistique de test est calculée à partir d'un tableau de contingence.
  • vous pouvez facilement créer d'autres types de statistiques de test à partir de n'importe quel type de transformation (y compris la transformation d'identité) à partir de ce schéma général.

petit exemple de test de permutation en R:

require(gtools)
dv <- c(1,3,4,5,5); covariate <- c(2,2,5,4,5)
# all possible permutations of dv, length(120):
perms <- permutations(5,5,dv,set=FALSE) 
# now calculate correlations for all perms with covariate:
cors <- apply(perms, 1, function(perms_row) cor(perms_row,covariate)) 
cors <- cors[order(cors)]
# now p-value: compare cor(dv,covariate) with the 
# sorted vector of all permutation correlations
length(cors[cors>=cor(dv,covariate)])/length(cors)
# result: [1] 0.1, i.e. a p-value of .1
# note that this is a one-sided test

Supposons maintenant que vous avez un ensemble de covariables, pas un seul comme ci-dessus. Calculez ensuite les valeurs p pour chacune des covariables comme dans le schéma ci-dessus, puis sélectionnez celle ayant la plus petite valeur p . Vous voulez calculer directement les valeurs p au lieu des corrélations, car vous pourriez avoir des covariables de différents types (par exemple numériques et catégoriques).

Une fois que vous avez sélectionné une covariable, explorez maintenant toutes les divisions possibles (ou souvent un nombre quelque peu restreint de toutes les divisions possibles, par exemple en exigeant un nombre minimal d'éléments de la DV avant de procéder à la division) en évaluant à nouveau un test basé sur la permutation.

ctreeest livré avec un certain nombre de transformations possibles pour DV et les covariables (voir l’aide fournie Transformationsdans le partypackage).

si généralement, la principale différence semble être celle qui ctreeutilise un schéma de sélection de covariable basé sur une théorie statistique (c’est-à-dire une sélection par des tests de signification basés sur la permutation) et évite ainsi un biais potentiel rpart, sinon ils semblent similaires. Par exemple, les arbres d'inférence conditionnels peuvent être utilisés comme apprenants de base pour les forêts aléatoires.

C'est à peu près tout ce que je peux obtenir. Pour plus d'informations, vous devez vraiment lire les journaux. Notez que je vous recommande fortement de savoir vraiment ce que vous faites lorsque vous souhaitez appliquer n'importe quel type d'analyse statistique.

wolf.rauch
la source
Il serait donc juste de dire ce qui suit: 1. En principe, si des tests de signification étaient disponibles et faciles à calculer pour Gini, alors tout constructeur d'arbre de décision actuel pourrait être complété par ceux-ci; 2. Mais dans la pratique, ils ne sont pas disponibles (c'est-à-dire très difficiles / inefficaces à calculer) dans la plupart des cas; 3. Les auteurs d'arbres CI ont choisi une famille de critères de scission. Ce n’est pas nécessairement la meilleure famille pour l’exactitude de la classification, mais au moins pour cela, il est facile de calculer l’importance; 4. Et donc une faiblesse des arbres de CI est que vous devez utiliser ce critère spécifique?
SheldonCooper
1
@SheldonCooper: 1. et 2. peuvent être un peu au-dessus de ma tête. Je pense que vous avez raison sur les
points
1
(...) et toutes les permutations possibles des valeurs de la DV "Toutes les permutations possibles des valeurs de la DV? Il faut plus de 130 secondes pour trouver toutes les permutations possibles de 10 éléments. Cela rendrait les arbres CI inutiles lorsque vous avez plus de 20 observations - ajoutées par un modérateur
chl
1
Je suis désolé, mais que représente DV?
mythicalprogrammer
1
variable dépendante @mythicalprogrammer, je pense
Frikster