python评分卡模型 简书_评分卡模型

信用评分卡分类

A卡:申请评分卡,侧重贷前,在客户获取期,建立信用风险评分,预测客户带来违约风险的概率大小;

B卡:行为评分卡,侧重贷中,在客户申请处理期,建立申请风险评分模型,预测客户开户后一定时期内违约拖欠的风险概率,有效排除了信用不良客户和非目标客户的申请;

C卡:催收评分卡,侧重贷后,在帐户管理期,建立催收评分模型,对逾期帐户预测催收策略反应的概率,从而采取相应的催收措施。

python 代码

# 评分卡转化

## 前提:WOE转化,逻辑回归各变量系数

## score = A+B*model_score

## 1.给某个特定的比率设定特定的预期分值;设定为p,好坏比设定为15

## 2.比率翻番时下降的分数(PDO)设定为20分

## 3. 基准分数定位700分,分数越大,信用度越好

## 从woe的公式来看,就是逻辑回归中机会比的含义。评分卡模型,对每个类别的woe乘以一个参数和评分权重,最终得到了模型分数。

from math import log

temdf = pd.DataFrame([result.params,round(result.pvalues,4),result.tvalues],index = ['coef','pvalue','z']).T

p = 15 / math.log(2)

q = 700 - 20 * math.log(15) / math.log(2)

print(p,q)

baseScore = round(q - p * temdf['coef'][0], 0)

print(baseScore)

# 第i个变量各区间的分数计算公式: A-B*(alpha/n+betai*woei1)

def trans(p,beta,datawoe):

credit_score = OrderedDict()

n = len(smlogit_summary.iloc[1:,:]['index'].tolist())

for var in smlogit_summary.iloc[1:,:]['index'].tolist():

tem_score = OrderedDict()

coef_ = smlogit_summary[smlogit_summary['index']==var]['coef'].values[0]

for j in dataiv[var].keys():

tem_score.update({str(j):round(-coef_*datawoe[var][j]*p,4)})

credit_score.update({var:tem_score})

return credit_score

trans_score = trans(p,smlogit_summary,datawoe)

lst = []

for i in trans_score.keys():

for j in trans_score[i].keys():

lst.append([i,j,trans_score[i][j]])

## 得到每个变量每个区间对应的分数(字典形式)

# 最后根据每条数据每个变量的得分求得总分即可

def final_score_fun(data_,dict_,variables):

temp_dat = copy.deepcopy(data_)

for variable in variables:

temp_dat[variable] =[dict_[variable][i] if i in dict_[variable].keys() else 0 for i in data_[variable] ]

temp_dat['BaseScore'] = 653

temp_dat['final_score'] = temp_dat[variables+['BaseScore']].apply(lambda x:x.sum(),axis=1)

temp_dat = temp_dat.merge(SCORE_TR[['LOAN_NO','y','SCORE_SMLOGIT','train_test']],left_on = 'LOAN_NO',right_on ='LOAN_NO',how = 'left')

return temp_dat

final_score = final_score_fun(dat_[['LOAN_NO']+smlogit_summary.iloc[1:,:]['index'].tolist()],trans_score,list(trans_score.keys()))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值