一级计算机评分错误429,信用评分卡的初级探索及疑问

对于整体情况的评分常用的方法有层次分析法,模糊分析法。

近期发现金融行业常用的评分卡模型,经过初步探索以后有了一定的理解,同时也存在一些待解决的疑问。

一、有监督数据

评分卡模型是有监督的打分模型,所以训练模型的数据集需要包含特征和二分类标签。以GiveMeSomeCredit数据集为例,第一列target为我们的目标标签,1表示存在违约,0表示无违约情况。

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

.

二、特征提取

特征之间不宜存在强的相关关系,否则会影响算法的结果。

并不是所有特征都对target起重要作用的,通过计算IV值判断每个特征的影响权重。

评分卡算法有三个关键词:分箱、WOE、IV

2.1 分箱

分箱就是把每个特征划分为几个等级。比如年龄特征经过分箱以后为20-30、31-50、51-70、71-100五类。

分箱的目的是为了使模型更加稳定。

分箱的方法分为有监督分箱(卡方分箱、cart分箱等)和无监督分箱(等距划分、等频划分)两种,有监督分箱效果会更好。

2.2、WOE证据权重

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

2.3 IV信息价值

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

2.4、计算案例

以年龄这一特征为例,对年龄采用等频分箱后,分为九个等级:21-33、34-39、40-45、46-49、50-53、...,代入公式计算出每个层级的WOE,基于WOE计算出特征的IV值。

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

2.5、特征价值

显然有些特征对target的影响程度不高,不必作为模型训练参数,可以删除。

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

.

三、逻辑回归

把符合IV条件的特征的WOE值作为模型训练数据,target为目标值,训练逻辑回归模型。

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

特征

from sklearn.linear_model import LogisticRegression

from sklearn.model_selection import train_test_split

x = train_X.drop('target',axis = 1)

y = train_X['target']

train_x,test_x,train_y,test_y = train_test_split(x,y,test_size = 0.3,random_state = 0)

train = pd.concat([train_y,train_x], axis =1)

test = pd.concat([test_y,test_x], axis =1)

train = train.reset_index(drop=True)

test = test.reset_index(drop=True)

lr = LogisticRegression(penalty= 'l1')

lr.fit(train_x,train_y)

回归模型验证的AUC值为0.83,效果还是不错的,标明这些特征能够比较好的预测target的值。

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

ROC验证

.

四、得分计算

4.1、得分计算原理

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

4.2、PDO和P0的定义

计算score的前提是需要自定义PDO和P0的值,这个值定义的依据是什么?应该如何科学的定义?(还不知道)

def cal_base(pdo, p0, lr):

B = pdo / math.log(2)

A = p0 - B / math.log(pdo)

base = round(A + B * lr.intercept_[0], 0)

print('base',base)

以下为PDO=100,600,700,800,900,1000;P0=5,10,20对应的基础得分。

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

4.4、计算每个变量每个等级的分值

#计算分值函数

def compute_score(coe, woe, factor):

scores = []

for w in woe:

score = round(coe * w * factor, 0)

scores.append(score)

return scores

当设置PDO的值为20、p0为600,可以计算出A,B值,同时推出基础分A+BW0为: 314.0,计算出的评分卡分值如下:

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

五个特征及对应分组的分值

当有新的人员数据生成是,可根据评分卡判断新成员的得分。以某一批新成员数据为例,经该评分卡判断后,这批成员的最高得分为604.0,最低得分为429.0(基础分314)

6a542550cba7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

新成员得分分布

五、问题小结

1、PDO、p0是随便设置的吗?

2、怎么设置阈值,超过这个阈值就接受,不超过就不接受借贷服务。

3、不同的分箱手段带来的AUC值的变动

参考资料

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值