Partycjonowanie drzew w R: party vs. rpart

15

Minęło trochę czasu, odkąd spojrzałem na dzielenie drzew. Ostatnim razem, gdy robiłem takie rzeczy, lubię imprezę w R (stworzoną przez Hothorn). Idea wnioskowania warunkowego za pomocą próbkowania ma dla mnie sens. Ale rpart również miał apelację.

W obecnej aplikacji (nie mogę podać szczegółów, ale wiąże się to z próbą ustalenia, kto trafi do więzienia wśród dużej próby aresztowań) nie mogę korzystać z zaawansowanych metod, takich jak losowe lasy, workowanie, wzmacnianie itp. - Potrzebuję łatwego do wyjaśnienia reguła.

Chciałbym również mieć ręczną kontrolę nad tym, które węzły dzielą się, jak to zalecono w Zhang & Singer (2010) Recursive Partitioning and Applications . Freeware dołączone do tej książki pozwala na to, ale poza tym jest raczej prymitywne w swoim wkładzie użytkownika.

Wszelkie zalecenia lub sugestie?

Peter Flom - Przywróć Monikę
źródło

Odpowiedzi:

8

Zgadzam się z @Iterator, że metodologia jest łatwiejsza do wyjaśnienia dla rpart. Jeśli jednak szukasz łatwych do wytłumaczenia zasad, impreza (bez spakowanych drzew) nie traci nic w odniesieniu do wyjaśnienia prognozy - wciąż masz jedno drzewo. Jeśli jesteś zainteresowany spojrzeniem na czynniki zmiennej wyniku (nie tylko czystą moc predykcyjną), nadal sądzę, że ta strona jest właściwą drogą - wyjaśniając, że drzewo decyzyjne (takie jak rpart) może być dość stronnicze w tym, w jaki sposób wybiera, które zmienne są ważne i jak tworzy podziały. Strona korzysta z testów permutacyjnych i statystycznie określa, które zmienne są najważniejsze i jak powstają podziały. Tak więc zamiast tendencyjnego skłaniania się ku zmiennym kategorialnym z wieloma poziomami, jak na przykład rpart, strona używa testów statystycznych, aby znaleźć najlepszą strukturę.

B_Miner
źródło
1
Niezła odpowiedź. Myślę, że trafiłeś na bardzo dobry powód, dla którego impreza jest lepsza dla zaawansowanych odbiorców i dlaczego dobrym pomysłem jest edukowanie odbiorców, aby pomóc im zaakceptować korzystanie z imprezy.
Iterator
4

[Uwaga: Zobacz aktualizację 1 poniżej.] Uważam, że metodologia rpartjest o wiele łatwiejsza do wyjaśnienia niżparty . Ten ostatni jest jednak znacznie bardziej wyrafinowany i prawdopodobnie da lepsze modele. Czasami wyjaśniam, partyże mówię o tym jako o podstawie do tworzenia lokalnych modeli liniowych (lub GLM). Uzgadniam to, wskazując, że wyniki dla rpartsą stałe we wszystkich elementach, które wpadają do węzła liścia, tj. Ramka / region ograniczony podziałami. Nawet jeśli możliwe są ulepszenia za pomocą modeli lokalnych, nie otrzymujesz nic oprócz stałej prognozy.

W przeciwieństwie, party rozwija podziały, aby potencjalnie zoptymalizować modele dla regionów. W rzeczywistości wykorzystuje inne kryteria niż optymalność modelu, ale musisz ocenić swoją zdolność do wyjaśnienia różnicy, aby ustalić, czy możesz to dobrze wyjaśnić. Dokumenty na ten temat są dość dostępne dla badacza, ale mogą być dość trudne dla kogoś, kto nie chce rozważyć prostszych metod, takich jak losowe lasy, przyspieszanie itp. Matematycznie myślę, że partyjest to bardziej wyrafinowane ... Niemniej modele CART są łatwiejsze wyjaśnić, zarówno pod względem metodologii, jak i wyników, i stanowią one dobry krok do wprowadzenia bardziej wyrafinowanych modeli opartych na drzewach.

Krótko mówiąc, powiedziałbym, że musisz zrobić rpartdla jasności i możesz użyć partydla dokładności / wydajności, ale nie przedstawiłbym się partybez przedstawienia rpart.


Aktualizacja 1. Swoją odpowiedź oparłem na moim zrozumieniu z partyroku lub dwóch lat temu. Wyrósł już dość, ale zmodyfikowałbym swoją odpowiedź, aby powiedzieć, że nadal polecam rpartze względu na jej zwięzłość i spuściznę, jeśli „niefajność” będzie ważnym kryterium dla twojego klienta / współpracownika. Jednak starałbym się migrować do korzystania z większej liczby funkcji party, po tym, jak kogoś przedstawiłem rpart. Lepiej zacząć od małych, z funkcjami strat, kryteriami podziału itp., W prostym kontekście, przed wprowadzeniem pakietu i metodologii, które obejmują znacznie bardziej zaangażowane koncepcje.

Iterator
źródło
2
Myślę, że trochę mylisz co do tego, co partypakiet może zrobić. Ta czysta partyfunkcja tworzy tylko jedno proste drzewo, jak w rpartprzypadku większości głosujących w liściach. mobFunkcja w partyto co buduje drzew z bardziej złożonych modeli w liściach (i wybiera podziały oparte na niestabilność parametrów.)
Shea Parkes
1
@SheaParkes Masz rację. Minęło trochę czasu i nie jestem pewien, czy tylko użyłem, mobczy też reszta pakietu całkiem się rozrosła - na przykład nie pamiętam wcześniej losowych lasów. Poprawię swoją odpowiedź ...
Iterator
2
Właściwie to też trochę zapomniałem. Ma ctreezrobić pojedyncze drzewo, cforestzrobić losowy las i mobzrobić liście oparte na modelu. I fyi, las jest fajny, ale strasznie powolny do przewidywania.
Shea Parkes,
Zajrzę do moba , nie sądzę, żeby istniał ostatni raz, kiedy korzystałem z imprezy . Tym razem aplikacje leśne nie są dla mnie.
Peter Flom - Przywróć Monikę
@PeterFlom Wydaje mi się, że mobmógł tam być od początku, a przynajmniej później ctree. Istnieje już od 2009 roku lub wcześniej. W każdym razie po prostu pokazuje, że wszyscy możemy nauczyć się czegoś nowego na SE. :)
Iterator,