python在银行的应用案例_银行风控案例(python)

前言:

风险控制是挖掘中最为常见的应用,属于监督学习的“分类器”使用案例。我们通过以往历史数据判断用户违约的概率。本文使用了Logistic Regression 方法完成案例。

首先是基于个人借贷的场景,确定“违约”的定义: 根据新的Basel II Capital Accord(巴塞尔二资本协议),一般逾期90天算作违约。

风控模型开发流程

· 数据抽取

· 数据探索

· 建模数据准备

· 变量选择

· 模型开发与验证

· 模型部署

· 模型监督

import pandasas pd#pandas包

import numpy as np#numpy包

import matplotlib.pyplot as plt#画图包

import seaborn as sb#画图包

from sklearn.linear_model import LogisticRegression#随机森林包

from sklearn.cross_validation import KFold,cross_val_score#交叉验证包

from sklearn.metrics import confusion_matrix,recall_score,classification_report#混淆矩阵包

from sklearn.preprocessing import StandardScaler数据标准化处理

1.数据准备

数据来自Kaggle,cs-training.csv是有15万条的样本数据,违约(1):不违约(0)=0.06:0.94),字段解释如下。

SeriousDlqin2yrs:超过90天或更糟的逾期拖欠

RevolvingUtilization Of UnsecuredLines:无担保放款的循环利用:除了不动产和像车 贷那样除以信用额度总和的无分期付款债务的信用卡和个人信用额度总额

Age:借款人年龄

NumberOfTime30-59DaysPastDueNotWorse:30-59天逾期次数

DebtRatio:负债比例

MonthlyIncome:月收入

Number Of OpenCreditLinesAndLoans:贷款数量

NumberOfTimes90DaysLate:90天逾期次数:借款者有90天或更高逾期的次数

NumberReal Estate Loans Or Lines:不动产贷款或额度数量:抵押贷款和不动产放款包 括房屋净值信贷额度

Number Of Time 60-89Days PastDue Not Worse:0-89天逾期次数

NumberOfDependents:不包括本人在内的家属数量

2.数据处理

2.1缺失值分析处理

traindata=pd.read_csv("C:/Users/Administrator/Desktop/CreditCard/CreditCard/cs_training.csv")#导入数据

traindata.drop_duplicates()#丢弃重复列

import missingno as msno#可视化分析缺失值包

sb.set(font_scale=2.0)

msno.matrix(traindata.sample(500),figsize=(16,7))

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我们开始介绍这个案例。 欺诈检测是金融行业中非常重要的领域。许多金融机构都会使用数据分析来发现和预防欺诈行为。在这个案例中,我们将使用Python进行欺诈检测。 首先,让我们导入需要使用的库。 ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import confusion_matrix, classification_report ``` 接下来,我们将加载数据集并进行一些基本的数据探索。 ```python data = pd.read_csv('creditcard.csv') print(data.head()) print(data.describe()) print(data.info()) ``` 我们可以看到数据集包含了信用卡交易的信息。其中,Class列表示该交易是否被认为是欺诈交易,0表示不是欺诈交易,1表示是欺诈交易。我们可以看到数据集中有284,807条交易记录,其中492条是欺诈交易,占比不到0.2%。 接下来,我们将绘制一个热力图来查看数据集中各列之间的相关性。 ```python corrmat = data.corr() fig = plt.figure(figsize=(12, 9)) sns.heatmap(corrmat, vmax=.8, square=True) plt.show() ``` 我们可以看到数据集中各列之间的相关性并不强。 接下来,我们将进行数据预处理,包括标准化和拆分数据集。 ```python # 标准化数据 from sklearn.preprocessing import StandardScaler data['normalizedAmount'] = StandardScaler().fit_transform(data['Amount'].values.reshape(-1, 1)) data = data.drop(['Amount'], axis=1) # 拆分数据集 X = data.iloc[:, :-1] y = data.iloc[:, -1] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) ``` 接下来,我们将使用逻辑回归模型进行欺诈检测,并输出模型的评估结果。 ```python # 训练模型 lr = LogisticRegression() lr.fit(X_train, y_train) # 预测结果 y_pred = lr.predict(X_test) # 输出评估结果 print(confusion_matrix(y_test, y_pred)) print(classification_report(y_test, y_pred)) ``` 最后,我们可以看到模型的准确率为99.9%,召回率为60.8%。这意味着我们的模型能够正确识别大多数欺诈交易,但有一些欺诈交易可能会被错误地分类为非欺诈交易。因此,我们需要继续优化模型,以提高召回率和准确率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值