0

我正在参加数据科学竞赛,我的最终预测将通过 GINI 指数来衡量。这是一个回归问题。我有 SAS 计算的源代码,但我不知道 SAS,也无法理解发生了什么。

我想在 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;
4

1 回答 1

0

这看起来像是关于基尼系数的维基百科文章的这一部分中底部公式的实现:

https://en.wikipedia.org/wiki/Gini_coefficient#Alternate_expressions

于 2016-10-27T15:49:39.890 回答