2016-10-26 3 views
0

Я участвую в конкурсе по науке о данных, и мои последние предсказания будут измеряться с помощью индекса GINI. Это проблема регрессии. У меня есть исходный код для расчета в SAS, но я не знаю SAS и не могу понять, что происходит.Код SAS - Попытка понять, как построить индекс GINI

Я хочу построить то же самое в Python. Любая помощь будет оценена по достоинству. Если кто-то знает код Python для этого, это очень поможет.

*define GINI;  
    %macro gini(input=, output=, y=, py=, filter=, split_ind =); 
    data indsn; 
     set &input.; 
     _random=ranuni (123456789); 
     w=1; 
     if &split_ind.="&filter."; 
    run; 

    proc sort data=indsn;by &py _random;run; 
     /*accumulate w to calculate Gini */ 
     data test; 
      set indsn; 
      if _N_ = 1 then do; 
       cumm_w0=0; 
      end; 
      retain cumm_w0 
      ; 
      cumm_w0=cumm_w0+w; 
     run; 

     /*calcualate Gini */ 
     proc sql noprint; 
      create table &output 
      as 
      select 1-2/(sum(w)-1)*(sum(w)-sum(&y.*cumm_w0*w)/sum(&y.*w)) as gini 
      from test; 
     quit; 


     proc print data=&output; 
      title " GINI on &filter.";run; 
    %mend; 
+0

SAS UE может быть установлено бесплатно, так что вы можете следить за расчетами. Поскольку w = 1, то cumm_w0 будет полным количеством случайных отсортированных данных. – Reeza

+0

@Reeza - любая идея, каковы параметры? – nEO

+0

Нет. Откуда у вас этот код, вы не можете получить документацию или помощь? – Reeza

ответ