Drzewa wnioskowania warunkowego a tradycyjne drzewa decyzyjne

97

Czy ktoś może wyjaśnić podstawowe różnice między drzewami wnioskowania warunkowego ( ctreez partypakietu w R) w porównaniu do bardziej tradycyjnych algorytmów drzewa decyzyjnego (takich jak rpartw R)?

  1. Co wyróżnia drzewa CI?
  2. Mocne i słabe strony?

Aktualizacja: Przejrzałem artykuł Horthorna i wsp., Do którego Chi odwołuje się w komentarzach. Nie byłem w stanie podążać za tym całkowicie - czy ktoś może wyjaśnić, w jaki sposób zmienne są wybierane za pomocą permutacji (np. Jaka jest funkcja wpływu)?

Dzięki!

B_Miner
źródło
1
Masz na myśli wyjaśnienie, które wykracza poza to, co opisano w pracy Hothorna ? Pamiętam kilka dobrych ilustracji Carolin Strobl z konferencji IMPS2009 ; Myślę, że na jej stronie internetowej są jakieś materiały informacyjne.
chl
Ten link pokazuje porównanie różnych form pakietów drzewa decyzyjnego r-bloggers.com/a-brief-tour-of-the-trees-and-forests
Archpaul

Odpowiedzi:

93

Tyle ile jest warte:

zarówno rparti ctreerekurencyjnie wykonują jednoczynnikowe podziały zmiennej zależnej na podstawie wartości na zestawie zmiennych towarzyszących. rparti pokrewne algorytmy zwykle wykorzystują miary informacyjne (takie jak współczynnik Giniego ) do wybierania bieżącej współzmiennej.

ctree, według jego autorów (patrz komentarze chl ) unika następującej tendencyjności wyboru zmiennych rpart(i powiązanych metod): Zazwyczaj wybierają zmienne, które mają wiele możliwych podziałów lub wiele brakujących wartości. W przeciwieństwie do innych, ctreestosuje procedurę testu istotności w celu wybrania zmiennych zamiast wybierania zmiennej, która maksymalizuje miarę informacyjną (np. Współczynnik Giniego).

Test istotności, lub lepiej: wielokrotne testy istotności obliczane na każdym początku algorytmu (wybierz zmienną towarzyszącą - wybierz podział - rekurencja) są testami permutacyjnymi , to znaczy „rozkład statystyki testu w ramach hipotezy zerowej uzyskuje się przez obliczenie wszystkie możliwe wartości statystyki testu przy przegrupowaniu etykiet na obserwowanych punktach danych. ” (z artykułu na Wikipedii).

Teraz statystyka testowa: jest obliczana z transformacji (w tym tożsamości, to znaczy bez transformacji) zmiennej zależnej i zmiennych towarzyszących. Możesz wybrać dowolną liczbę transformacji dla obu zmiennych. W przypadku DV (zmienna zależna) transformacja nazywana jest funkcją wpływu, o którą pytałeś.

Przykłady (zaczerpnięte z pracy ):

  • jeśli zarówno DV, jak i zmienne towarzyszące są numeryczne, możesz wybrać transformacje tożsamości i obliczyć korelacje między zmienną towarzyszącą i wszystkimi możliwymi permutacjami wartości DV. Następnie obliczasz wartość p na podstawie tego testu permutacji i porównujesz ją z wartościami p dla innych zmiennych towarzyszących.
  • jeśli zarówno DV, jak i zmienne towarzyszące są nominalne (nieuporządkowane kategorycznie), statystyka testu jest obliczana z tabeli nieprzewidzianych zdarzeń.
  • z tego ogólnego schematu można łatwo tworzyć inne rodzaje statystyk testowych z dowolnego rodzaju transformacji (w tym transformacji tożsamości).

mały przykład testu permutacji w 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

Załóżmy teraz, że masz zestaw zmiennych towarzyszących, a nie tylko jeden jak wyżej. Następnie oblicz wartości p dla każdej z zmiennych towarzyszących, jak na powyższym schemacie, i wybierz tę o najmniejszej wartości p . Chcesz obliczyć wartości p zamiast korelacji bezpośrednio, ponieważ możesz mieć różne zmienne towarzyszące (np. Liczbowe i kategoryczne).

Po wybraniu współzmiennych, teraz eksploruj wszystkie możliwe podziały (lub często jakoś ograniczoną liczbę wszystkich możliwych podziałów, np. Wymagając minimalnej liczby elementów DV przed podziałem) ponownie oceniając test oparty na permutacji.

ctreezawiera szereg możliwych transformacji zarówno dla DV, jak i dla zmiennych towarzyszących (patrz pomoc Transformationsw partypakiecie).

więc generalnie główna różnica wydaje się polegać na tym, że ctreestosuje schemat selekcji współzmiennej oparty na teorii statystycznej (tj. selekcji za pomocą testów istotności opartych na permutacji), a tym samym pozwala uniknąć potencjalnego błędu, w rpartprzeciwnym razie wydają się podobne; np. drzewa wnioskowania warunkowego mogą być używane jako podstawowe osoby uczące się w losowych lasach.

To jest tak daleko, jak tylko mogę. Aby uzyskać więcej informacji, naprawdę musisz przeczytać gazety. Pamiętaj, że zdecydowanie zalecamy, abyś naprawdę wiedział, co robisz, gdy chcesz zastosować jakąkolwiek analizę statystyczną.

wolf.rauch
źródło
Czy byłoby zatem uczciwe powiedzieć, co następuje: 1. Zasadniczo, jeśli testy istotności byłyby dostępne i łatwe do obliczenia dla Giniego, to można by przy ich pomocy rozszerzyć dowolne narzędzie do budowania drzew decyzji; 2. Ale w praktyce nie są dostępne (tj. Bardzo trudne / nieefektywne w obliczeniach) w większości przypadków; 3. Autorzy drzew CI wybrali jedną rodzinę kryteriów podziału. Niekoniecznie jest to najlepsza rodzina pod względem dokładności klasyfikacji, ale przynajmniej dla jej łatwości obliczenia znaczenia; 4. A zatem słabością drzew CI jest to, że musisz stosować to konkretne kryterium?
SheldonCooper
1
@SheldonCooper: 1. i 2. mogą być trochę ponad moją głową. Myślę, że masz rację co do 3. i 4.
wilk. Podobnie
1
(...) i wszystkie możliwe permutacje wartości DV "Wszystkie możliwe permutacje wartości DV? Znalezienie wszystkich możliwych permutacji 10 elementów zajmuje ponad 130 sekund. To sprawiłoby, że drzewa CI byłyby bezużyteczne, gdy masz więcej niż 20 obserwacji - dodane przez moderatora
chl
1
Przepraszam, ale co oznacza skrót DV?
mityczny programista
1
@ Myślę, że zmienna zależna od mitycznego
programisty