2016-03-15 43 views
6

Ecco il mio codice:Qual è la misura utilizzata per "importanza" nel h2o Foresta casuale

set.seed(1) 

#Boruta on the HouseVotes84 data from mlbench 
library(mlbench) #has HouseVotes84 data 
library(h2o)  #has rf 

#spin up h2o 
myh20 <- h2o.init(nthreads = -1) 

#read in data, throw some away 
data(HouseVotes84) 
hvo <- na.omit(HouseVotes84) 

#move from R to h2o 
mydata <- as.h2o(x=hvo, 
       destination_frame= "mydata") 

#RF columns (input vs. output) 
idxy <- 1 
idxx <- 2:ncol(hvo) 

#split data 
splits <- h2o.splitFrame(mydata,   
         c(0.8,0.1))  

train <- h2o.assign(splits[[1]], key="train") 
valid <- h2o.assign(splits[[2]], key="valid") 

# make random forest 
my_imp.rf<- h2o.randomForest(y=idxy,x=idxx, 
         training_frame = train, 
         validation_frame = valid, 
         model_id = "my_imp.rf", 
         ntrees=200) 

# find importance 
my_varimp <- h2o.varimp(my_imp.rf) 
my_varimp 

L'output che sto ottenendo è "importanza variabile".

Le misure classiche sono "riduzione della precisione media" e "diminuzione media del coefficiente di gini".

I miei risultati sono i seguenti:

> my_varimp 
Variable Importances: 
    variable relative_importance scaled_importance percentage 
1  V4   3255.193604   1.000000 0.410574 
2  V5   1131.646484   0.347643 0.142733 
3  V3   921.106567   0.282965 0.116178 
4  V12   759.443176   0.233302 0.095788 
5  V14   492.264954   0.151224 0.062089 
6  V8   342.811554   0.105312 0.043238 
7  V11   205.392654   0.063097 0.025906 
8  V9   191.110046   0.058709 0.024105 
9  V7   169.117676   0.051953 0.021331 
10  V15   135.097076   0.041502 0.017040 
11  V13   114.906586   0.035299 0.014493 
12  V2   51.939777   0.015956 0.006551 
13  V10   46.716656   0.014351 0.005892 
14  V6   44.336708   0.013620 0.005592 
15  V16   34.779987   0.010684 0.004387 
16  V1   32.528778   0.009993 0.004103 

Da questo la mia importanza relativa di "Vote # 4" aka V4, è ~ 3255,2.

Domande: In che unità si trova? Come viene derivato?

Ho provato a cercare nella documentazione, ma non trovo la risposta. Ho provato la documentazione di aiuto. Ho provato a usare Flow per esaminare i parametri per vedere se qualcosa lì dentro lo indicava. In nessuno di essi trovo "gini" o "diminuisci precisione". Dove dovrei guardare?

risposta

3

La risposta è nello docs.

[Nel riquadro sinistro, fare clic su "Algoritmi", quindi su "Supervisionato", quindi su "DRF". La sezione delle domande frequenti risponde a questa domanda. ]

Per comodità, la risposta è anche copiato e incollato qui:

"Come è variabile importanza calcolato per DRF variabile importanza è determinata calcolando l'influenza relativa di ogni variabile: se tale variabile è stata selezionata durante la scissione come risultato nel processo di costruzione degli alberi e in che misura l'errore al quadrato (su tutti gli alberi) è migliorato. "

+1

Penso che tu stia indicando dove dice "L'importanza variabile viene determinata calcolando l'influenza relativa di ciascuna variabile: se quella variabile è stata selezionata durante la divisione nel processo di costruzione dell'albero e quanto l'errore quadratico (su tutti gli alberi) è migliorato di conseguenza._ "Questo non è" Gini "o" Diminuzione dell'accuratezza ". Esiste un'equazione, un riferimento cartaceo o uno pseudocodice? Sto trovando un comportamento molto diverso dall'output della libreria R 'Boruta' per RF. – EngrStudent

+4

Usiamo lo stesso codice albero nel nostro GBM e RF, quindi l'equazione sottostante utilizzata è la stessa in entrambi (anche se gli algos funzionano in modo diverso in modo che i valori di GBM e RF finali siano diversi). Il riferimento è l'equazione 45 in questo documento: https://statweb.stanford.edu/~jhf/ftp/trebst.pdf –

+1

Amo le approssimazioni avide. L'importanza sarà fondamentalmente diversa poiché il GBM proviene dalla RF. Grazie. – EngrStudent