概述
SDU项目实训记录3.3——信用评分
- 一、基础知识
- 二、实现过程
一、基础知识
评分卡设定的分数刻度值通过将分值表示为比率对数的线性表达式来定义
score = A –Blog(Odds) , 其中Odds = p/(1-p) ,p为违约概率,常数A B可以通过两个已知假设分值带入到公式中,通常需要以下两个假设:
- 在某个特定比率设定特定的预期分值
- 指定比率翻倍的分数PDO
规定: odds=1:60时 P0=600 PDO=20
推导公式可得:
- B = PDO / log(2)
- A = P0 + B * log(odds)
参考:信用评分卡模型的理论准备3.1评分卡刻度
二、实现过程
根据之前训练得到的逻辑回归模型得到对应截距和权重参数:
print("截距项:", model.intercept_[0])
coes = model.coef_[0]
print("权重参数:", coes)
设P0为600,PDO为20(每高20分好坏比翻一倍),好坏比取60的前提下,我们计算得基础分数为558分。
odds = 1/60
P0 = 600
PDO = 20
#计算A、B
B = PDO / np.log(2)
A = P0 + B * np.log(odds)
BaseScore = round(A - B * model.intercept_[0], 0)
print('BaseScore =', BaseScore)
print('A =', A) # <A认为会违约
定义由权重参数和woe计算区间分值的函数,调用得到各分箱区间对应的分值如下:
def get_score(coe,woe,factor):
scores=[]
for w in woe:
score=round(coe * w * factor,0)
scores.append(score)
return scores
i = 0
scores = {}
for f in features_saving:
score = get_score(coes[i], woes[f], B)
scores[f] = score
print(f, ':', score)
i += 1
对应边界,获得列表:
最后
以上就是淡定花瓣为你收集整理的SDU项目实训记录3.3——信用评分(7.15)一、基础知识二、实现过程的全部内容,希望文章能够帮你解决SDU项目实训记录3.3——信用评分(7.15)一、基础知识二、实现过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复