Bedingte Inferenzbäume im Vergleich zu traditionellen Entscheidungsbäumen


97

Kann jemand die Hauptunterschiede zwischen bedingten Inferenzbäumen ( ctreeaus dem partyPaket in R) im Vergleich zu den traditionelleren Entscheidungsbaumalgorithmen (wie rpartin R) erklären ?

  1. Was unterscheidet CI-Bäume?
  2. Stärken und Schwächen?

Update: Ich habe mir das Papier von Horthorn et al. Angesehen, auf das Chi in den Kommentaren Bezug nimmt. Ich konnte es nicht vollständig verfolgen - kann jemand erklären, wie Variablen mit Permutationen ausgewählt werden (z. B. was ist eine Einflussfunktion)?

Vielen Dank!


1
Sie meinen eine Erklärung, die über das hinausgeht, was in Hothorns Aufsatz beschrieben wird ? Ich erinnere mich an ein paar nette Illustrationen von Carolin Strobl auf der IMPS2009- Konferenz. Ich denke, es gibt einige Handzettel auf ihrer Website.
Chl

Dieser Link zeigt einen Vergleich zwischen verschiedenen Formen von Entscheidungsbaum-Paketen. R-bloggers.com/a-brief-tour-of-the-trees-and-forests
Archpaul

Antworten:


93

Für was es wert ist:

beide rpartund ctreerekursiv univariate Aufteilungen der abhängigen Variablen basierend auf Werten auf einer Menge von Kovariaten durchführen. rpartund verwandte Algorithmen verwenden gewöhnlich Informationsmaße (wie den Gini-Koeffizienten ) zum Auswählen der aktuellen Kovariate.

ctreeLaut den Autoren (siehe Kommentare von chl ) wird die folgende Abweichung bei der Variablenauswahl rpart(und verwandten Methoden ) vermieden : Sie neigen dazu, Variablen mit vielen möglichen Teilungen oder vielen fehlenden Werten auszuwählen. ctreeVerwendet im Gegensatz zu den anderen ein Signifikanztestverfahren, um Variablen auszuwählen, anstatt die Variable auszuwählen, die ein Informationsmaß maximiert (z. B. Gini-Koeffizient).

Der Signifikanztest oder besser: Die bei jedem Start des Algorithmus berechneten multiplen Signifikanztests (Kovariate auswählen - Split auswählen - Rekursion) sind Permutationstests , dh die "Verteilung der Teststatistik unter der Nullhypothese wird durch Berechnung erhalten alle möglichen Werte der Teststatistik unter Umordnung der Etiketten auf die beobachteten Datenpunkte. " (aus dem Wikipedia-Artikel).

Nun zur Teststatistik: Sie wird aus Transformationen (einschließlich Identität, dh keiner Transformation) der abhängigen Variablen und der Kovariaten berechnet. Sie können für beide Variablen eine beliebige Anzahl von Transformationen auswählen. Für die DV (Dependent Variable) wird die Transformation die Einflussfunktion genannt, nach der Sie gefragt haben.

Beispiele (aus dem Papier entnommen ):

  • Wenn sowohl DV als auch Kovariaten numerisch sind, können Sie Identitätstransformationen auswählen und Korrelationen zwischen der Kovariate und allen möglichen Permutationen der DV-Werte berechnen. Dann berechnen Sie den p- Wert aus diesem Permutationstest und vergleichen ihn mit p- Werten für andere Kovariaten.
  • Wenn sowohl DV als auch die Kovariaten nominal sind (ungeordnet kategorial), wird die Teststatistik aus einer Kontingenztabelle berechnet.
  • Sie können leicht andere Arten von Teststatistiken aus jeder Art von Transformation (einschließlich Identitäts-Transformation) aus diesem allgemeinen Schema erstellen.

kleines Beispiel für einen Permutationstest in 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

Angenommen, Sie haben eine Reihe von Kovariaten, nicht nur eine wie oben. Berechnen Sie dann die p- Werte für jede der Kovariaten wie im obigen Schema und wählen Sie den mit dem kleinsten p- Wert aus. Sie möchten p- Werte anstelle der Korrelationen direkt berechnen , da Sie Kovariaten unterschiedlicher Art (z. B. numerisch und kategorisch) haben können.

Nachdem Sie eine Kovariate ausgewählt haben, untersuchen Sie nun alle möglichen Teilungen (oder häufig eine irgendwie eingeschränkte Anzahl aller möglichen Teilungen, z. B. indem Sie vor der Teilung eine minimale Anzahl von DV-Elementen benötigen) erneut und bewerten Sie einen permutationsbasierten Test.

ctreeTransformationsIm partyLieferumfang sind eine Reihe möglicher Transformationen für DV und Kovariaten enthalten (siehe Hilfe im Paket).

Der Hauptunterschied scheint im Allgemeinen darin zu liegen, dass ctreeein kovariates Auswahlschema verwendet wird, das auf statistischer Theorie basiert (dh Auswahl durch permutationsbasierte Signifikanztests) und dadurch eine mögliche Verzerrung vermeidet rpart, da sie ansonsten ähnlich erscheinen. Beispielsweise können bedingte Inferenzbäume als Basislerner für zufällige Wälder verwendet werden.

Das ist ungefähr so ​​weit ich kommen kann. Für weitere Informationen müssen Sie unbedingt die Zeitungen lesen. Beachten Sie, dass ich Ihnen dringend empfehle, wirklich zu wissen, was Sie tun, wenn Sie statistische Analysen durchführen möchten.


Wäre es also fair, Folgendes zu sagen: 1. Wenn Signifikanztests verfügbar und für Gini einfach zu berechnen wären, könnte jeder derzeitige Entscheidungsbaumbauer mit diesen Tests erweitert werden. 2. In der Praxis sind sie jedoch in den meisten Fällen nicht verfügbar (dh sehr schwierig / ineffizient zu berechnen). 3. Die Autoren von CI-Bäumen haben eine Familie von Aufteilungskriterien ausgewählt. Dies ist nicht unbedingt die beste Familie für die Klassifizierungsgenauigkeit, aber es ist zumindest einfach, die Signifikanz zu berechnen. 4. Und deshalb ist es eine Schwäche von CI-Bäumen, dass Sie dieses spezielle Kriterium verwenden müssen?
SheldonCooper

1
@ SheldonCooper: 1. und 2. können etwas über meinem Kopf liegen. Ich denke, Sie haben Recht, etwa 3. und 4.
wolf.rauch

1
(...) und alle möglichen Permutationen der Werte von DV "Alle möglichen Permutationen der Werte von DV? Es dauert über 130 Sekunden, um alle möglichen Permutationen von 10 Elementen zu finden. Dies würde CI-Bäume unbrauchbar machen, wenn Sie mehr als haben 20 Beobachtungen - von einem Moderator hinzugefügt
chl

1
Es tut mir leid, aber wofür steht DV?
mythicalprogrammer

1
@mythicalprogrammer abhängige Variable, denke ich
Frikster
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.