Partizionare gli alberi in R: party vs. rpart


15

È passato un po 'di tempo da quando ho visto gli alberi di partizionamento. L'ultima volta che ho fatto questo genere di cose, mi piace la festa in R (creata da Hothorn). L'idea dell'inferenza condizionale tramite campionamento ha senso per me. Ma anche rpart aveva un fascino.

Nell'attuale applicazione (non posso fornire dettagli, ma implica il tentativo di determinare chi andrà in prigione in un ampio campione di arrestati) Non posso usare metodi avanzati come foreste casuali, insaccamento, potenziamento ecc. - Ho bisogno di una spiegazione facile regola.

Vorrei anche avere un controllo manuale su quali nodi si dividono, come raccomandato in Partizioni ricorsive e applicazioni Zhang & Singer (2010) . Il freeware fornito con quel libro lo consente, ma per il resto è piuttosto primitivo nel suo input dell'utente.

Qualche consiglio o suggerimento?

Risposte:


8

Concordo con @Iterator che la metodologia è più semplice da spiegare per rpart. Tuttavia, se stai cercando regole facilmente spiegabili, la festa (senza alberi insaccati) non perde nulla per quanto riguarda la spiegazione della previsione: hai ancora un singolo albero. Se sei anche interessato a guardare i driver della variabile risultato (non solo puro potere predittivo), continuerei a pensare che la parte sia la strada da percorrere - spiegando che un albero decisionale (come rpart) può essere abbastanza distorto nel modo in cui seleziona quale le variabili sono importanti e come si creano le divisioni. Il partito utilizza i test di permutazione e determina statisticamente quali variabili sono più importanti e come vengono suddivise. Quindi, invece di inclinarsi di parte verso variabili categoriali con molti livelli, come ad esempio rpart, il partito utilizza test statistici per trovare la struttura migliore.


1
Bella risposta. Penso che tu abbia colto un'ottima ragione per cui la festa è migliore per un pubblico avanzato e perché è una buona idea educare il pubblico per aiutarli ad accettare l'uso della festa.
Iteratore

4

[NB: Vedi l'aggiornamento 1 di seguito.] Trovo che la metodologia rpartsia molto più semplice da spiegare rispetto a party. Quest'ultimo, tuttavia, è molto più sofisticato e probabilmente offre modelli migliori. Il modo in cui talvolta spiego partyè di parlarne come base per la produzione di modelli locali lineari (o GLM). Costruisco su questo sottolineando che i risultati per rpartsono costanti su tutti gli elementi che cadono nel nodo foglia, ovvero la casella / regione delimitata dalle divisioni. Anche se potrebbero esserci miglioramenti tramite modelli locali, non si ottiene altro che una previsione costante.

Al contrario, partysviluppa le divisioni per ottimizzare potenzialmente i modelli per le regioni. In realtà sta usando criteri diversi dall'ottimalità del modello, ma è necessario valutare la propria capacità di spiegare la differenza per determinare se è possibile spiegarlo bene. I documenti per questo sono piuttosto accessibili per un ricercatore, ma possono essere piuttosto impegnativi per qualcuno che non è disposto a prendere in considerazione metodi più semplici come foreste casuali, potenziamento, ecc. Matematicamente, penso che partysia più sofisticato ... Tuttavia, i modelli CART sono più facili da spiegare, sia in termini di metodologia che di risultati, e questi forniscono un decente trampolino di lancio per l'introduzione di modelli basati su alberi più sofisticati.

In breve, direi che devi fare rpartper chiarezza e puoi usare partyper accuratezza / prestazioni, ma non introdurrei partysenza presentarti rpart.


Aggiornamento 1. Ho basato la mia risposta sulla mia comprensione di partycome era un anno o due fa. È cresciuto un po ', ma modificherei la mia risposta per dire che consiglierei ancora rpartper la sua brevità e eredità, se "non fantasioso" dovrebbe essere un criterio importante per il tuo cliente / collaboratore. Tuttavia, proverei a migrare per utilizzare più funzionalità da party, dopo aver introdotto qualcuno a rpart. È meglio iniziare in piccolo, con funzioni di perdita, criteri di suddivisione, ecc., In un contesto semplice, prima di introdurre un pacchetto e una metodologia che coinvolgono concetti molto più coinvolti.


2
Penso che ti stia confondendo un po 'su cosa partypuò fare il pacchetto. La partyfunzione pura rende solo un singolo albero semplice come rpartcon il voto di maggioranza nelle foglie. La mobfunzione in partyè ciò che costruisce alberi con modelli più complessi nelle foglie (e sceglie le divisioni in base all'instabilità dei parametri.)
Shea Parkes

1
@SheaParkes Hai ragione. È passato un po 'di tempo e non sono sicuro se ho usato solo mobo se il resto del pacchetto è cresciuto un po' - ad esempio, non ricordo di aver mai visto foreste casuali prima. Revisionerò la mia risposta ...
Iterator

2
E in realtà, avevo dimenticato anche un po '. È ctreefare un singolo albero, cforestcreare una foresta casuale e mobcreare foglie basate sul modello. E a proposito, la foresta è divertente, ma orribilmente lenta da prevedere.
Shea Parkes

Guarderò in massa , non credo esistesse ultima volta che ho usato partito . Le applicazioni forestali non sono per me, questa volta.
Peter Flom - Ripristina Monica

@PeterFlom Penso che mobpotrebbe essere stato lì fin dall'inizio, o almeno dopo ctree, suppongo. È in circolazione dal 2009 o prima. Ad ogni modo, dimostra che tutti possiamo imparare qualcosa di nuovo su SE. :)
Iteratore
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.