老饼讲解:一步一步上手学习
report.get_threshold_tb用于计算阈值表。
完整调用格式如下:
tb = report.get_threshold_tb(score,y,bin_step=10)score:样本的评分。
数据类型:单列pandas.core.series
y:样本标签,0为好,1为坏。
数据类型:单列pandas.core.series
bin_step:统计的步长,默认值为10,即每隔10分作为一段进行统计。
数据类型:正整数
get_threshold_tb使用示例如下:
import bbbrisk as br
data = br.datasets.load_bloan() # 加载数据
x,y = data.iloc[:,:-1],data['is_bad'] # 样本变量与标签
bin_sets = br.bins.batch.autoBins(x, y,enum_var=['city','marital']) # 自动分箱
model,card = br.model.scoreCard(x,y,bin_sets,train_param={'random_state':0}) # 构建评分卡
score = card.predict(x[card.var]) # 用评分卡进行评分
th_tb = br.report.get_threshold_tb(score,y,bin_step=10) # 画出分数分布图
br.display.pd.set(width=300,max_colwidth=30,max_rows=30) # 美化pandas的显示方式
print('\n* 阈值表th_tb:\n',th_tb) # 打印阈值表运行结果如下:

以第二行为例,它的意义为:
[640,650)的人共12个,其中2个是好客户,10个是坏客户。
如果阈值取为<640,则会:
损失29个客户,占总客户(20000个)中的0.15%,
损失的(29个)客户中有7个好客户,占总好客户(18617个)中的0.04%,
损失的(29个)客户中有22个坏客户(剔除了22个坏客户),即剔除了总体坏客户(1383个)中的1.59%,
本组中,坏客户占比为83.33%(10/12),损失客户中,坏客户占比为70.59%(22/29)。
好了,以上就是report.get_threshold_tb函数的使用方法了~
评论