信用标准评分卡模型开发及实现的文章,是标准的评分卡建模流程在R上的实现,非常不错,就想着能不能把开发流程在Python上实验一遍呢,经过一番折腾后,终于在Python上用类似的代码和包实现出来,由于Python和R上函数的差异以及样本抽样的差异,本文的结果与该文有一定的差异,这是意料之中的,也是正常,接下来就介绍建模的流程和代码实现。 #####代码中需要引用的包##### import numpy as np import pandas as pd from sklearn.utils import shuffle from sklearn.feature_selection import RFE, f_regression import scipy.stats.stats as stats import matplotlib.pyplot as plt from sklearn.linear_model import LogisticRegression import math

二、数据集准备

加州大学机器学习数据库中的german credit data,原本是存在R包”klaR”中的GermanCredit,我在R中把它加载进去,然后导出csv,最终导入Python作为数据集 ############## R ################# library(klaR) data(GermanCredit ,package="klaR") write.csv(GermanCredit,"/filePath/GermanCredit.csv")

>>> df_raw = pd.read_csv('/filePath/GermanCredit.csv') >>> df_raw.dtypes Unnamed: 0 int64 status object duration int64 credit_history object purpose object amount int64 savings object employment_duration object installment_rate int64 personal_status_sex object other_debtors object present_residence int64 property object age int64 other_installment_plans object housing object number_credits int64 job object people_liable int64 telephone object foreign_worker object credit_risk object

#提取样本训练集和测试集 def split_data(data, ratio=0.7, seed=None): if seed: shuffle_data = shuffle(data, random_state=seed) else: shuffle_data = shuffle(data, random_state=np.random.randint(10000)) train = shuffle_data.iloc[:int(ratio*len(shuffle_data)), ] test = shuffle_data.iloc[int(ratio*len(shuffle_data)):, ] return train, test #设置seed是为了保证下次拆分的结果一致 df_train,df_test = split_data(df_raw, ratio=0.7, seed=666) #将违约样本用“1”表示,正常样本用“0”表示。 credit_risk = [0 if x=='good' else 1 for x in df_train['credit_risk']] #credit_risk = np.where(df_train['credit_risk'] == 'good',0,1) data = df_train data['credit_risk']=credit_risk

三、定量指标筛选

#获取定量指标 quant_index = np.where(data.dtypes=='int64') quant_vars = np.array(data.columns)[quant_index] quant_vars = np.delete(quant_vars,0)

df_feature = pd.DataFrame(data,columns=['duration','amount','installment_rate','present_residence','age','number_credits','people_liable']) f_regression(df_feature,credit_risk) #输出逐步回归后得到的变量,选择P值<=0.1的变量 quant_model_vars = ["duration","amount","age","installment_rate"]

四、定性指标筛选

def woe(bad, good): return np.log((bad/bad.sum())/(good/good.sum())) all_iv = np.empty(len(factor_vars)) woe_dict = dict() #存起来后续有用 i = 0 for var in factor_vars: data_group = data.groupby(var)['credit_risk'].agg([np.sum,len]) bad = data_group['sum'] good = data_group['len']-bad woe_dict[var] = woe(bad,good) iv = ((bad/bad.sum()-good/good.sum())*woe(bad,good)).sum() all_iv[i] = iv i = i+1 high_index = np.where(all_iv>0.1) qual_model_vars = factor_vars[high_index]

至此,就完成了数据集的准备和指标的筛选,下面就要进行逻辑回归模型的建模了,请见

信用评分python_信用评分卡模型在Python中实践(上)相关推荐

  1. mysql 增删修模型_48.Python中ORM模型实现mysql数据库基本的增删改查操作

    首先需要配置settings.py文件中的DATABASES与数据库的连接信息, DATABASES = { 'default': { 'ENGINE': 'django.db.backends.my ...

  2. 1、pth转onnx模型、onnx转tensorrt模型、python中使用tensorrt进行加速推理(全网最全,不信你打我)

    本文向所有亲们介绍在python当中配置tensorrt环境.使用tensorrt环境进行推理的教程,主要分为两大部分,第一部分环境配置,第二部分前向推理. 第一部分 环境配置 第一步:检查你的系统类 ...

  3. 信用评分python_信用评分卡(python)

    目录 导入数据 缺失值和异常值处理 特征可视化 特征选择 模型训练 模型评估 模型结果转评分 计算用户总分 一.导入数据 #导入模块 importpandas as pdimportnumpy as ...

  4. 逻辑回归模型在R中实践

    在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...

  5. perl转python_将行转换为perl或python中的列

    我认为你可以用一张桌子做好,所以我会告诉你如何做你要求的和我认为好的. $name = ""; $data = {}; open(IN, "build.txt" ...

  6. if函数python_关于函数:如何在python中为一个if语句提供多个条件

    本问题已经有最佳答案,请猛点这里访问. 所以我在用python 3.1.5编写一些代码,这些代码需要有多个条件才能发生某些事情.例子: 1 2 3 4 5def example(arg1, arg2, ...

  7. python金融风控评分卡模型和数据分析

    python金融风控评分卡模型和数据分析微专业课(博主录制):http://dwz.date/b9vv 作者Toby:持牌照消费金融模型专家,和中科院,中科大教授保持长期项目合作:和同盾,聚信立等外部 ...

  8. python金融风控评分卡模型

    python金融风控评分卡模型和数据分析微专业课(博主录制): [ http://dwz.date/b9vv ](https://study.163.com/series/1202875601.htm ...

  9. 风控必备的评分卡模型,TempoAI 10分钟搞定

    8月20日,央行发布了<2020年第二季度支付体系运行总体情况>,数据显示,截至第二季度末,信用卡逾期半年未偿信贷总额838.84亿元,占信用卡应偿信贷余额的1.17%.与一季度相比,信用 ...

  10. 玩转大数据风控—利用评分卡模型实现信用评级

    玩转大数据风控-利用评分卡模型实现信用评级 一.算法介绍 1. 什么是逻辑回归? 2. 逻辑回归为何逻辑 ? 3. 逻辑回归怎么回归? 二.构建流程 1.数据处理 1.1 数据清理 1.2 缺失值处理 ...

最新文章

  1. [SqlServer]数据库中自定义拆分字符串函数Split()
  2. javascript 控制键盘输入
  3. idea中build项目之后生成的target看不见
  4. oracle 将查询出的数据加1-10_PostgreSQL数据库跨库访问
  5. HDU 4267 A Simple Problem with Integers [树状数组]
  6. python软件下载对电脑配置要求-python3批量统计用户电脑配置
  7. 获取建模美赛O奖的方法和经验!文末资料放送
  8. 轨迹跟踪算法——Stanley法
  9. 服务器要使用两张网卡做bond0以实现网络冗余和提高带宽
  10. 2018校招 多益网络 人工智能及大数据研发工程师 面经
  11. maven pom.xml解析、命令说明、依赖传递、继承、聚合、properties、build、依赖范围、版本仲裁、profile
  12. Lamda C++11
  13. java乱码详解(java中byte与char的转换)
  14. 博通Broadcom SDK源码学习与开发11——Cable Modem DHCP管理
  15. rest php,使用php创建一个Rest Api
  16. Java学习 输出1-1000以内的质数
  17. 更深、更轻量级的Transformer!Facebook提出:DeLighT
  18. [Markdown]windows本地写markdown文件和上传图片到免费图床
  19. python输入数字比大小_Python练习实例47 | 比较任意两个数字的大小
  20. 无盘服务器网卡qos,qos

热门文章

  1. 嵌入式成长轨迹1 【嵌入式环境及基础】【嵌入式Linux软件开发入门】【linux基础命令】...
  2. Qt5.12 制作串口调试助手
  3. Ubuntu16.04 + ROS下串口通讯
  4. php四种基础算法:冒泡,选择,插入和快速排序法PHP基础教程
  5. Linux shell (一)
  6. css3中的文字效果
  7. SeaJS项目完整实例【转】
  8. 公共网关接口CGI(Common GatewayInterface)
  9. nib、xib与故事板的关系
  10. 阅读SQL语言艺术实践一