模型建立后开始计算分数,先找到前面由逻辑回归输出结果里面的逻辑回归系数。然后计算评分卡分值,由查阅资料得知score=offset+factor*log(odds),这里设置基础分值为500,PDO和odds为20。计算得出评分卡基础分值后再获取各部分变量的评分,并得出评分卡。计算变量分数通过get_score函数获取。
计算比例因子factor,偏移量以及评分卡分值
p = 20 / math.log(2)
q = 500 - 20 * math.log(20) / math.log(2)
baseScore = round(q + p * coe[0], 0)
计算各变量分数并输出
def get_score(coe, woe, factor):
scores = []
for w in woe:
score = round(coe * w * factor, 0)
scores.append(score)
return scores
RUOUl_score = get_score(coe[1], RUOUl_woe, p)
age_score = get_score(coe[2], age_woe, p)
NotWorse3059_score = get_score(coe[3], NotWorse3059_woe, p)
NumberOfTimes90DaysLate_score = get_score(coe[4], NumberOfTimes90DaysLate_woe, p)
NotWorse6089_score = get_score(coe[5], NotWorse6089_woe, p)
print(RUOUl_score, age_score, NotWorse3059_score, NumberOfTimes90DaysLate_score, NotWorse6089_score)