机器学习预测信贷风险(上)

简介: 机器学习预测信贷风险(上)

数据资源


https://gitee.com/pingfanrenbiji/resource/tree/master/%E9%87%91%E8%9E%8D%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/%E7%AC%AC%E4%B8%89%E7%AB%A0%E7%AC%AC%E4%B8%89%E9%A2%98


导入代码库


import pandas as pd
import numpy as np


导入样本


loan_history=pd.read_excel('loan_history.xlsx')
newuser=pad.read_excel('newuser.xlsx')


查看数据维度(行列量)


loan_history.shape
newuser.shape
(12000, 18)
(3000, 17)
newuser相对loan_history少了sample这个特征


数据集信息探索


loan_history.describe()


image.png


比如 target列count是12000
就说明 loan_history 这个表格有12000行数据的target值个数汇总是12000
count、mean、std(标准差)、min、25%、50%、75%都是基于当前指标(特征、自变量)对应的一列数据来计算的


观察数据集字段信息


loan_history.info()
object表示字符串类型的值


image.png


分析特征变量


  • 将变量名转换成列表形式 便于后续进行循环操作


var_all = loan_history.columns.tolist()
var_all 这个是样本表全量列名 后续需要由其整理出入模指标(特征、自变量)
sample 上面也说到了 loan_history中有、newuser中没有 所以不将此特征入模
并且这个字段是字符型 为了简化代码 不做定性变量处理 故删除这个指标
uid 是关联字段 也不入模
target 预测指标 因变量 也不入模型


所以将这3个特征变量从全量特征中删除 留下的都是需要入模(进行模型训练)的指标
var_all.remove('sample')
var_all.remove('uid')
var_all.remove('target')


判断各列是否有空值


for col in var_all:
    x=loan_history[col].isnull().sum()
    if x != 0:
       print(col,x)
循环遍历var_all这个数组中的所有的入模型特征变量
获取当前变量在这个表格中对应的所有的这列数据
通过isnull()函数判断是否为空 
若为空 则sum() 统计+1
如果未打印出结果则说明此处无空值


建立模型


导入机器学习库


# 导入训练、测试数据集划分类
from sklearn.model_selection import train_test_split
# 导入岭回归包中的逻辑回归类
from sklearn.linear_model import LogisticRegression
# 导入统计包中的f1值、精确率(precision 模型判断正例中有多少实际也为正例的)、召回率(recall 实际正例中有多少被模型判断为正例的),roc曲线、auc面积相关类
from sklearn.metrics import confusion_matrix,f1_score,
precision_score,recall_score,roc_auc_score


分割训练集和测试集


train,test=train_test_split(loan_history,test_size=0.4,random_state=2020)
训练、测试数据分割 
第一个参数是 原数据(贷款历史)
第二个参数是 测试数据所占的比例 一般是30%-40%合适
第三个参数是 随机种子 这是固定的随机种子
即每次分割之后的数据都是一致的
得到:
train是训练数据集
test是测试数据集


对训练和测试集合分别剥离出自变量、因变量


# 得到训练集的所有的自变量数据
X_train=tarin(var_all)
# 得到训练集的因变量数据 即实际是否还款
y_train=train('target')
# 得到测试数据集的所有自变量数据
X_test=test[var_all]
# 得到测试数据集的因变量数据 即实际是否还款
y_test=test['target']


开始模型训练


  • 创建逻辑回归模型实例


model = LogisticRegression()


  • 调用模型训练算法git 传入 训练数据集中的自变量数据、和训练数据集中的因变量数据


lgr=model.fit(X_train,y_train)
模型训练真正想要做的事情:
假如 是这样的数据
小明的各种实际信息(姓名、手机号、借口记录)    结果是否还款
很多人这样的数据就会构成很大的数据集集
把这个数据集进行训练 得出一个公式
这个公式是根据这些数据训练出来的
而预测就是 有了一个新的客户 小红 ,有他的基本信息 但没有贷款记录 
根据他的基本信息 代入这个公式 得出一个结果 即是否贷款给他
相关文章
|
1月前
|
机器学习/深度学习 数据采集 自然语言处理
机器学习【金融风险与风口评估及其应用】
机器学习【金融风险与风口评估及其应用】
78 6
|
6月前
|
机器学习/深度学习 数据采集 算法
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
|
5月前
|
机器学习/深度学习 数据采集 算法
机器学习在金融风控中的角色:前沿技术助力风险防控
【6月更文挑战第18天】机器学习正重塑金融风控,提升风险防控效能。通过信贷风险评估、反欺诈识别和市场风险管理,技术实现精准预测和高效应对。高效率、精确性和适应性是关键优势,但数据质量、多样性和模型可解释性仍是挑战。未来,机器学习将在金融风控领域发挥更大作用。
|
5月前
|
机器学习/深度学习 数据采集 算法
基于机器学习的糖尿病风险预警分析系统是一个非常有用的应用
基于机器学习的糖尿病风险预警分析系统是一个非常有用的应用
67 1
|
5月前
|
机器学习/深度学习 数据采集 监控
基于机器学习的糖尿病风险预警分析系统
基于机器学习的糖尿病风险预警分析系统
61 1
|
6月前
|
机器学习/深度学习 算法 数据可视化
机器学习-生存分析:如何基于随机生存森林训练乳腺癌风险评估模型?
机器学习-生存分析:如何基于随机生存森林训练乳腺癌风险评估模型?
117 1
|
6月前
|
机器学习/深度学习 算法
机器学习(八)经验风险与结构风险
机器学习(八)经验风险与结构风险
133 0
|
机器学习/深度学习 大数据
机器学习lgb全国大数据创新应用大赛用户贷款风险预测 完整代码数据 可直接运行
机器学习lgb全国大数据创新应用大赛用户贷款风险预测 完整代码数据 可直接运行
139 0
|
机器学习/深度学习
【阿旭机器学习实战】【13】决策树分类模型实战:泰坦尼克号生存预测
【阿旭机器学习实战】【13】决策树分类模型实战:泰坦尼克号生存预测
【阿旭机器学习实战】【13】决策树分类模型实战:泰坦尼克号生存预测
|
机器学习/深度学习 移动开发 Windows
机器学习奥林匹克-身体健康与幸福之心脏病预测
机器学习奥林匹克-身体健康与幸福之心脏病预测
421 0
机器学习奥林匹克-身体健康与幸福之心脏病预测
下一篇
无影云桌面