如何将LR的预测概率值转化为分数?
背景:在互联网金融中,一般用LR模型来预测一个借贷用户的好坏,但是LR模型得到的结果是逾期的概率值,如何仅仅给出预测概率值,人一般很难判断这个概率值代表的用户质量好坏,但是如果能够给出分数就比较理解了。而我们一般要把逾期概率转为分数来供公司进行决策,那么如何将逾期概率转化为用户质量的得分,例如0-100呢?
最容易想到的是将逾期率概率值直接乘以100就得到分数了,但是LR得到的概率值往往是不均匀的,比如讲概率值排序后,头部和尾部的概率值较少,大部分概率都集中在中间某个区域,这时这种方法就失效了。
还有一种方法是将概率值进行排序,找出头部的20%概率值映射到80-100分,尾部的20%概率值映射到0-60分,中间的60%概率值映射到60-80分,那么如何将头部的20%概率映射到80-100分呢?可以将概率值作为X,分数score作为Y,计算一个线性回归模型 Y=w1X+w2 。这样,当就可以将概率值通过线性函数映射到分数了。
注意,具体映射到哪个分数区间可以根据业务进行调整。
代码:
import numpy as np
from pandas import DataFrame
def score_model(result_train, bins_num=10):
"""
根据输入的样本数据,进行打分模型的训练:
输入数据格式:dict 组成list, dict = {score : ml_model_proba}
输出数据格式:bin_dict =