如何计算循环中不同分段的基尼?

2024-10-03 11:21:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dataframe,其中包括Split、Target和Score列。我想计算每一组数据的基尼值。我想把每次分手的钱还给吉妮。我正在使用下面的代码。如何解决这个问题

Splits = ['Cash', 'NonCash', 'New']

for i in Splits:
    
    Target = df[df['Split'] == i]['Target']
    Score = df[df['Split'] == i]['Score']

    def Gini(Target, Score):
        ROC = roc_auc_score(Target, Score)
        Gini = ROC*2-1
return Gini

我的数据如下:

d={
    'Split' :['Cash','Cash','NonCash','New','New'],
    'Target':[0,0,1,0,1],
    'Score':[69,76,74,89,62]
}

df=pd.DataFrame(d, columns=['Split','Target','Score'])

预期结果是计算每个分割的基尼值,并创建一个基尼参数,如基尼现金、基尼非现金、基尼新


Tags: 数据代码intargetdataframedfnewfor
1条回答
网友
1楼 · 发布于 2024-10-03 11:21:38

这样做:

d={
    'Split' :['Cash','Cash','NonCash','New','New'],
    'Target':[0,0,1,0,1],
    'Score':[69,76,74,89,62]
}

df=pd.DataFrame(d, columns=['Split','Target','Score'])


Splits = ['Cash', 'NonCash', 'New']
gin=[]

def Gini(Target, Score):
    ROC = roc_auc_score(Target, Score)
    Gini_1 = ROC*2-1
    return Gini_1

for i in Splits:
    
    Target = df[df['Split'] == i]['Target']
    Score = df[df['Split'] == i]['Score']
    gin.append(Gini(Target,Score))

你会得到一份吉尼分数表

相关问题 更多 >