2016-03-15 5 views
6

Вот мой код:Какова мера, используемая для «важности» в h2o случайного леса

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 

Вывод, который я получаю «переменное значение».

Классические меры - это «среднее снижение точности» и «среднее снижение коэффициента Джини».

Мои результаты:

> 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 

С этой моей относительной важности "Голосуй # 4" ака V4, составляет ~ 3255,2.

Вопросы: Какие единицы это? Как это происходит?

Я пробовал искать документацию, но не нашел ответа. Я попробовал справочную документацию. Я попытался использовать Flow, чтобы посмотреть параметры, чтобы увидеть, что там указано. Ни в одном из них я не нахожу «gini» или «уменьшить точность». Где я должен смотреть?

ответ

3

Ответ в docs.

[В левой панели нажмите «Алгоритмы», затем «Управленческий», затем «DRF». В разделе ответов на часто задаваемые вопросы отвечает этот вопрос. ]

Для удобства, ответ также скопировать и вставить здесь:

«Как переменное значение вычисляется для ФПИ переменного значения определяется путем расчета относительного влияния каждого переменный: была ли выбрано этим переменное при раскалывании в процессе построения дерева и в какой степени квадратная ошибка (по всем деревьям) улучшилась в результате ».

+1

Я думаю, вы указываете на то, где говорится: «Важное значение определяется путем вычисления относительного влияния каждой переменной: была ли выбрана эта переменная во время разделения в процессе построения дерева и насколько квадратная ошибка (по всем деревьям) улучшена в результате. »« Это не «Джини» или «Снижение точности». Есть ли уравнение, справочный документ или псевдокод? Я нахожу совсем другое поведение, чем выход библиотеки R 'Boruta' для РФ. – EngrStudent

+4

Мы используем один и тот же древовидный код в наших GBM и RF, поэтому используемое основное уравнение одинаково для обоих (хотя algos работают по-разному, так что окончательные значения значения GBM и RF будут разными). Ссылка - это уравнение 45 в этой статье: https://statweb.stanford.edu/~jhf/ftp/trebst.pdf –

+1

Мне нравятся жадные аппроксимации. Важность будет столь же принципиально иной, как и GBM из РФ. Спасибо. – EngrStudent