當(dāng)前位置:
首頁(yè) >
【数据处理】python数据评估常用指标:ks、fpr、tpr
發(fā)布時(shí)間:2025/3/21
78
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【数据处理】python数据评估常用指标:ks、fpr、tpr
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
def cal_ks(df, col, target):"""df:數(shù)據(jù)集col:輸入的特征target:好壞標(biāo)記的字段名return:ks: KS值precision:準(zhǔn)確率tpr:召回率fpr:打擾率"""bad = df[target].sum()good = df[target].count() - badvalue_list = list(df[col])label_list = list(df[target])value_count = df[col].nunique()items = sorted(zip(value_list, label_list), key=lambda x: x[0])value_bin = []ks_list = []if value_count <= 200:for i in sorted(set(value_list)):value_bin.append(i)label_bin = [x[1] for x in items if x[0] < i]badrate = sum(label_bin) / badgoodrate = (len(label_bin) - sum(label_bin)) / goodks = abs(goodrate - badrate)ks_list.append(ks)else:for i in range(1, 201):step = (max(value_list) - min(value_list)) / 200idx = min(value_list) + i * stepvalue_bin.append(idx)label_bin = [x[1] for x in items if x[0] < idx]badrate = sum(label_bin) / badgoodrate = (len(label_bin) - sum(label_bin)) / goodks = abs(goodrate - badrate)ks_list.append(ks)ks = round(max(ks_list), 3)ks_value = [value_bin[i] for i, j in enumerate(ks_list) if j == max(ks_list)][0]precision = df[(df[col] <= ks_value) & (df[target] == 1)].shape[0] / df[df[col] <= ks_value].shape[0]tpr = df[(df[col] <= ks_value) & (df[target] == 1)].shape[0] / badfpr = df[(df[col] <= ks_value) & (df[target] == 0)].shape[0] / goodreturn ks, precision, tpr, fpr
??對(duì)數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、數(shù)據(jù)科學(xué)、金融風(fēng)控等感興趣的小伙伴,需要數(shù)據(jù)集、代碼、行業(yè)報(bào)告等各類學(xué)習(xí)資料,可添加微信:wu805686220(記得要備注喔!),也可關(guān)注微信公眾號(hào):風(fēng)控圏子(別打錯(cuò)字,是圏子,不是圈子,算了直接復(fù)制吧!)
關(guān)注公眾號(hào)后,可聯(lián)系圈子助手加入如下社群:
- 機(jī)器學(xué)習(xí)風(fēng)控討論群(微信群)
- 反欺詐討論群(微信群)
- python學(xué)習(xí)交流群(微信群)
- 研習(xí)社資料(qq群:102755159)(干貨、資料、項(xiàng)目、代碼、報(bào)告、課件)
相互學(xué)習(xí),共同成長(zhǎng)。
總結(jié)
以上是生活随笔為你收集整理的【数据处理】python数据评估常用指标:ks、fpr、tpr的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【数据处理】python变量分箱常见手法
- 下一篇: 用python制作信贷审批监测表