评分卡模型开发-定量特征筛选

作者: 鸣人吃土豆 | 来源:发表于2017-12-21 14:29 被阅读103次

在模型开发中,并不是所有的特征要全部筛选进模型,因为金融数据一般特征有很多,如果全部放入模型,一方面可能会引起“维度灾难”,另一方面得到的结果也许并不是最好的,因为有些特征之间的相关性较强。所以我们有必要对特征进行一定程度的筛选.数据的话可以去评分卡模型开发-数据集缺失值处理下载

import pandas as pd
import os
os.chdir("C:\\Users\\Administrator\\OneDrive\\步履不停\\评分卡制作\\数据")
df = pd.read_csv(".\\GermanCredit.csv",index_col=0)
df.head()

#将违约样本用"1"表示,正常样本用0表示
import numpy as np
df['credit_risk'] = df['credit_risk'].apply(lambda x:np.where(x=='good',0,1))

#获取定量指标
df.info()

continuous_vars = []
category_vars = []
for i in df.columns: 
    if df[i].dtype=='int64': #判断条件依据df.info()的结果而定
        continuous_vars.append(i)
    else:
        category_vars.append(i) 

X = df.loc[:,continuous_vars[:-1]]
X.head()

y = df.loc[:,continuous_vars[-1]]
y.head()

至此,我们将数据源中的所有特征分为了定量和定性,接下来我们讲讲怎么在python中选取定量特征

  • 通过随机森林判断特征的重要性
from sklearn.ensemble import RandomForestClassifier
#无需对基于树的模型做标准化或归一化处理
forest = RandomForestClassifier(n_estimators=10000,random_state=0,n_jobs=-1)
forest.fit(X,y)
importances=forest.feature_importances_
importances

得到如下结果:

array([ 0.18996948,  0.34514053,  0.06920705,  0.07587584,  0.2470823 ,
        0.04564897,  0.02707582])

接下来我们利用numpy中argsort函数得到imoortances中从大到小排列的索引值,并根据索引值将每个特征的重要性值排列出来

indices=np.argsort(importances)[::-1]
feat_labels=X.columns
for f in range(X.shape[1]):
    print("%2d) %-*s %f " %(f+1,30,feat_labels[f],importances[indices[f]]))

得到如下结果:该结果是根据均值精度下降法得出来的

1) duration                       0.345141 
 2) amount                         0.247082 
 3) installment_rate               0.189969 
 4) present_residence              0.075876 
 5) age                            0.069207 
 6) number_credits                 0.045649 
 7) people_liable                  0.027076 

最后我们可以将其可视化:

import matplotlib.pyplot as plt
%matplotlib inline
plt.title('Feature Importances')
plt.bar(range(X.shape[1]),importances[indices],color='lightblue',align='center')
plt.xticks(range(X.shape[1]),feat_labels,rotation=90)
plt.xlim([-1,X.shape[1]])
plt.tight_layout()
1.png

相关文章

  • 评分卡模型开发-定量特征筛选

    在模型开发中,并不是所有的特征要全部筛选进模型,因为金融数据一般特征有很多,如果全部放入模型,一方面可能会引起“维...

  • 信用评分模型开发-基于R语言(1)

    目录 评分卡开发流程 数据的获取与整合 探索性数据分析 特征选择 粗分类与WOE变换 模型评估 评分卡开发 模型监...

  • 申请评分卡目录

    申请评分卡(1)——相关概念申请评分卡(2)——评分卡模型开发申请评分卡(3)——建模(R)

  • 风控建模流程

    以下以申请评分卡(A卡)建模为例,描述模型开发的基本流程:1.数据准备:定义目标变量,整合样本特征;划分数...

  • 申请评分卡(2)——评分卡模型开发

    模型开发步骤 业务和风险定义 数据准备与预处理来源:自有数据和第三方数据 模型构建确定观察点、观察期和表现期,选择...

  • 催收评分卡模型开发

    催收评分卡模型简介 随机森林模型在还款率预测模型中的应用

  • 行为评分卡模型开发

    基本定义 根据放款人放贷后的表现行为,预测未来的逾期/违约风险概率的模型 使用场景 行为评分卡用在贷款发放之后,到...

  • 风控(一) 评分卡开发

    1.1 标准评分卡(分为:申请评分卡、行为评分卡) 1.申请评分卡,对新贷款申请进行筛选并判断其违约金 ...

  • 信用评分卡模型开发流程

    本文是基于书籍《信用风险评分卡研究》学习总结,此篇为提纲,后续会针对每一部分详细介绍 标准评分卡 申请评分卡(A卡...

  • 信用评分模型开发

    信用评分模型可用“四张卡”来表示,分别是 A卡(Application score card,申请评分卡)、B卡(...

网友评论

    本文标题:评分卡模型开发-定量特征筛选

    本文链接:https://www.haomeiwen.com/subject/sjlmwxtx.html