评分卡建模常用逻辑回归模型,将逻辑回归输出的概率值映射成分数,最后得到标准评分卡。关于评分卡映射的逻辑,可以看之前的文章逻辑回归评分卡映射逻辑。
下面接着分箱之后的数据开始建模。首先将每个变量分箱的结果进行转换,得到每个变量对应的woe结果表。
# 变量woe结果表
def woe_df_concat(bin_df):
"""
bin_df:list形式,里面存储每个变量的分箱结果
return :woe结果表
"""
woe_df_list =[]
for df in bin_df:
woe_df = df.reset_index().assign(col=df.index.name).rename(columns={
df.index.name:'bin'})
woe_df_list.append(woe_df)
woe_result = pd.concat(woe_df_list,axis=0)
# 为了便于查看,将字段名列移到第一列的位置上
woe_result1 = woe_result['col']
woe_result2 = woe_result.iloc[:,:-1]
woe_result_df = pd.concat([woe_result1,woe_result2],axis=1)
woe_result_df = woe_result_df.reset_index(drop=True)
return woe_result_df
df_woe_cat=woe_df_concat(bin_df_cat)
df_woe_num=woe_df_concat(bin_df_num)
df_woe=pd