Spørgsmål:
Betingede sluttræer vs traditionelle beslutningstræer
B_Miner
2011-06-21 02:45:43 UTC
view on stackexchange narkive permalink

Kan nogen forklare de primære forskelle mellem betingede inferens træer ( ctree fra part pakke i R) sammenlignet med de mere traditionelle beslutningstræ algoritmer (såsom rpart i R)?

  1. Hvad gør CI-træer forskellige?
  2. Styrker og svagheder?

Opdatering: Jeg har kiggede på papiret fra Horthorn et al., som Chi henviser til i kommentarerne. Jeg var ikke i stand til at følge det fuldstændigt - kan nogen forklare, hvordan variabler vælges ved hjælp af permutationer (f.eks. Hvad er en indflydelsesfunktion)?

Tak!

Du mener en forklaring, der går ud over, hvad der er beskrevet i [Hothorns papir] (http://cran.r-project.org/web/packages/party/vignettes/party.pdf)? Jeg kan huske nogle gode illustrationer fra [Carolin Strobl] (http://www.stat.uni-muenchen.de/~carolin/) på konferencen [IMPS2009] (http://www.thepsychometricscentre.com/); Jeg tror, ​​der er nogle uddelingskopier på hendes hjemmeside.
Dette link viser sammenligning mellem forskellige former for beslutningstræpakker https://www.r-bloggers.com/a-brief-tour-of-the-trees-and-forests/
En svar:
wolf.rauch
2011-07-15 04:46:59 UTC
view on stackexchange narkive permalink

For hvad det er værd:

både rpart og ctree udfører rekursivt univariate split af den afhængige variabel baseret på værdier på et sæt kovariater. rpart og relaterede algoritmer anvender normalt informationsmål (såsom Gini-koefficienten) til valg af det aktuelle kovariat.

ctree ifølge dens forfattere (se chl's kommentarer) undgår den følgende variabeludvælgelsesforstyrrelse af rpart (og relaterede metoder): De har tendens til at vælge variabler, der har mange mulige opdelinger eller mange manglende værdier. I modsætning til de andre bruger ctree en signifikans-testprocedure for at vælge variabler i stedet for at vælge den variabel, der maksimerer et informationsmål (f.eks. Gini-koefficient).

Signifikansprøven, eller bedre: de multiple signifikansprøver beregnet ved hver start af algoritmen (vælg covariat - vælg split - recurse) er permutationstest, det vil sige " fordelingen af ​​teststatistikken under nulhypotesen opnås ved at beregne alle mulige værdier for teststatistikken under omlejringer af etiketterne på de observerede datapunkter. " (fra wikipedia-artiklen).

Nu til teststatistikken: den beregnes ud fra transformationer (inklusive identitet, dvs. ingen transformation) af den afhængige variabel og kovariaterne. Du kan vælge en hvilken som helst af et antal transformationer for begge variabler. For DV (afhængig variabel) kaldes transformationen den indflydelsesfunktion du spurgte om.

Eksempler (taget fra papiret):

  • hvis både DV og covariater er numeriske, kan du vælge identitetstransformationer og beregne sammenhænge mellem covariat og alle mulige permutationer af DV's værdier. Derefter beregner du p -værdien ud fra denne permutationstest og sammenligner den med p -værdierne for andre kovariater.
  • hvis både DV og covariaterne er nominelle (ikke-ordnede kategoriske), beregnes teststatistikken ud fra en beredskabstabel.
  • Du kan nemt sammensætte andre slags teststatistikker fra enhver form for transformation (inklusive identitetstransformation) fra denne generelle ordning.

lille eksempel til en permutationstest i R:

  kræver (gtools) dv <- c (1,3,4,5,5); covariate <- c (2,2,5,4,5) # alle mulige permutationer af dv, længde (120): perms <- permutationer (5,5, dv, set = FALSE) # Beregn nu korrelationer for alle perms med covariate: cors <- anvende (perms, 1, funktion (perms_row) cor (perms_row, covariate)) cors <- cors [rækkefølge (cors)] # nu p-værdi: sammenlign cor (dv, covariate) med den # sorterede vektor af alle permutationskorrelationslængde (cors [cors> = cor (dv, covariate)]) / længde (cors) # resultat: [1] 0,1, dvs. en p-værdi på .1 # bemærk, at dette er en ensidig test  kode> 

Antag nu, at du har et sæt kovariater, ikke kun en som ovenfor. Beregn derefter p -værdier for hver af covariaterne som i ovenstående skema, og vælg den med den mindste p -værdi. Du vil beregne p -værdier i stedet for sammenhængene direkte, fordi du kunne have kovariater af forskellige slags (f.eks. Numeriske og kategoriske).

Når du har valgt et kovariat, skal du nu udforske alle mulige opdelinger (eller ofte et på en eller anden måde begrænset antal af alle mulige opdelinger, f.eks. ved at kræve et minimalt antal elementer i DV inden opdeling) igen evaluere en permutationsbaseret test.

ctree leveres med et antal mulige transformationer til både DV og covariater (se hjælp til Transformations i pakken party ).

så generelt ser hovedforskellen ud til at være ctree bruger et covariat selektionsskema, der er baseret på statistisk teori (dvs. udvælgelse ved permutationsbaseret signifikans test) og derved undgår en potentiel bias i rpart , ellers virker de ens; f.eks. betingede slutningstræer kan bruges som baselærere til tilfældige skove.

Dette er omtrent så vidt jeg kan komme. For mere information skal du virkelig læse papirerne. Bemærk, at jeg kraftigt anbefaler, at du virkelig ved, hvad du laver, når du vil anvende enhver form for statistisk analyse.

Så ville det være rimeligt at sige følgende: 1. I princippet, hvis signifikansprøver var tilgængelige og lette at beregne for Gini, kunne enhver nuværende beslutningstræbygger suppleres med disse; 2. Men i praksis er de ikke tilgængelige (dvs. meget vanskelige / ineffektive at beregne) i de fleste tilfælde; 3. Forfatterne af CI-træer valgte en familie af opdelingskriterier. Dette er ikke nødvendigvis den bedste familie for klassificeringsnøjagtighed, men i det mindste for det er det let at beregne betydning; 4. Og derfor er en svaghed ved CI-træer, at du skal bruge dette specifikke kriterium?
@SheldonCooper: 1. og 2. kan være lidt over mit hoved. Jeg tror, ​​du har ret omkring 3. og 4.
@Wolf Tak for denne forklaring, det hjalp meget! Jeg spekulerede på, hvad er dit syn på de anvendte vægte - er disse simpelthen "1", når der ikke er en vægtning af en given sag?
Dette er en kommentar til wolf.raugs svar, men jeg kan ikke sende det som sådan på grund af min lave omdømme-score.Ville være taknemmelig, hvis nogen kunne genindlægge det.Kunne du præcisere udtrykket "transformation"?Fra hjælp i "partipakken" ser det ud til, at standardfunktionen `gælder ()` for mig.Det giver mig valget om, hvad jeg skal gøre ved IV'er og DV, men jeg forstår ikke formålet med at gøre det.Jeg har et andet spørgsmål til denne del:> "hvis både DV og kovariater er numeriske, kan du vælge identitetstransformationer og beregne sammenhænge mellem kovariatet (...)
(...) og alle mulige permutationer af værdierne for DV " Alle mulige permutationer af værdierne for DV?Det tager over 130 sekunder at finde alle mulige permutationer af 10 elementer.Dette ville gøre CI-træer ubrugelige, når du har mere end 20 observationer.- tilføjet af en moderator.
Undskyld, men hvad står DV for?
@mythicalprogrammer-afhængig variabel, tror jeg


Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...