2015-04-14 21 views
5

assuma i dati formazione è "frutto", che ho intenzione di usarlo per predire utilizzando il modello CART in Rcomprensione della funzione minbucket nel modello CART utilizzando R

> fruit=data.frame(
        color=c("red", "red", "red", "yellow", "red","yellow", 
          "orange","green","pink", "red",‌ ​"red"), 
        isApple=c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE, 
          FALSE,FALSE,FALSE,FALSE,TRUE)) 

> mod = rpart(isApple ~ color, data=fruit, method="class", minbucket=1) 

> prp(mod) 

Qualcuno potrebbe spiegare che cosa è esattamente il ruolo di minbucket nel plottaggio dell'albero del CART per questo esempio se useremo minbucket = 2, 3, 4, 5?

Vedere ho 2 variabili di colore & isApple. La variabile di colore ha verde, giallo, rosa, arancione e rosso. la variabile Apple ha valore TRUE o FALSE. Nell'ultimo esempio, RED ha tre TRUE e 2 FALSE mappati con esso. Il valore rosso appare cinque volte. se do minbucket = 1,2,3 allora si sta dividendo. Se do minbucket = 4 o 5, non si verifica alcuna divisione anche se il rosso appare cinque volte.

risposta

5

Dalla documentazione per il pacchetto rpart:

minbucket

il numero minimo di osservazioni in ogni nodo terminale. Se viene specificato un solo minbucket o minsplit, il codice imposta minsplit tominbucket * 3 o minbucket a minsplit/3, a seconda dei casi.

L'impostazione minbucket a 1 non ha significato, poiché ciascun nodo foglia (per definizione) avrà almeno un'osservazione su di esso. Se lo si imposta su un valore più alto, ad esempio 3, significherebbe che ogni nodo foglia avrebbe almeno 3 osservazioni in quel bucket.

Più piccolo è il valore di minbucket, più preciso sarà il modello di carrello. Impostando minbucket su un valore troppo piccolo, ad esempio 1, si rischia di sovradimensionare il modello.

+0

frutta = data.frame (colore = c ("rosso", "rosso", "rosso", "giallo", "rosso", "giallo", "arancione", "verde", "rosa", " rosso "," rosso "), isApple = c (TRUE, TRUE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE)) Dite che questo è il mio data frame, stiamo trovando se il risultato è apple o no?????? abbiamo 5 mele rosse, 1 pomodoro qui, quindi quello che eva è rosso non deve essere una mela. ma se do minbucket = 5 o 4 qui non c'è nessuna divisione. per il secchio minimo 1 a 3 c'è una divisione oltre 3 non c'è divisione. Ma ho più di 3 osservazioni nel mio nodo fogliare. Prego invitare la mia domanda grazie .... @ tim-biegeleisen – GBOT

+0

http://stackoverflow.com/users/3710546/pascal. Ho modificato la domanda originale. è comprensibile ora ???? – GBOT

+1

Potresti fare una nuova domanda? –