山东大学暑期项目实训-基于信用评分卡算法模型的个人信用评级系统的设计与实现-第四周-12(7月23日)

在得出基础分和各部分得分后,两者相加即可得出个人总评分,自定义compute_score函数来找到每一行数据根据分箱得出的分数段的得分,最想通过各评分相加得出最终评分,并对最终结果进行输出。

compute_score函数

def compute_score(series, bins, score):
    list = []
    i = 0
    while i < len(series):
        value = series[i]
        j = len(bins) - 2
        m = len(bins) - 2
        while j >= 0:
            if value >= bins[j]:
                j = -1
            else:
                j -= 1
                m -= 1
        list.append(score[m])
        i += 1
    return list

得出各部分评分相加并得到最终评分输出

test1 = pd.read_csv('TestData.csv')
test1['BaseScore'] = Series(np.zeros(len(test1)))+baseScore
test1['RUOUL_score'] = Series(compute_score(test1['RevolvingUtilizationOfUnsecuredLines'], RevolvingUtilizationOfUnsecuredLines_bins, RUOUl_score))
test1['age_score'] = Series(compute_score(test1['age'], age_bins, age_score))
test1['NumberOfTime30-59DaysPastDueNotWorse_score'] = Series(compute_score(test1['NumberOfTime30-59DaysPastDueNotWorse'], NotWorse3059_bins, NotWorse3059_score))
test1['NumberOfTimes90DaysLate_score'] = Series(compute_score(test1['NumberOfTimes90DaysLate'], NumberOfTimes90DaysLate_bins,NumberOfTimes90DaysLate_score))
test1['NumberOfTime60-89DaysPastDueNotWorse_score'] = Series(compute_score(test1['NumberOfTime60-89DaysPastDueNotWorse'], NotWorse6089_bins, NotWorse6089_score))
test1['Score'] = test1['RUOUL_score'] + test1['age_score'] + test1['NumberOfTime30-59DaysPastDueNotWorse_score'] + test1['NumberOfTimes90DaysLate_score'] + test1['NumberOfTime60-89DaysPastDueNotWorse_score'] + baseScore
test1.to_csv('ScoreData.csv', index=False)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值