python评分卡模型 简书_评分卡模型开发-定量特征筛选

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值