Я участвую в конкурсе по науке о данных, и мои последние предсказания будут измеряться с помощью индекса 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;
SAS UE может быть установлено бесплатно, так что вы можете следить за расчетами. Поскольку w = 1, то cumm_w0 будет полным количеством случайных отсортированных данных. – Reeza
@Reeza - любая идея, каковы параметры? – nEO
Нет. Откуда у вас этот код, вы не можете получить документацию или помощь? – Reeza