机器学习:银行信贷预测(简单学习)

2023-10-09 01:10

本文主要是介绍机器学习:银行信贷预测(简单学习),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注意:本次案例使用的是pycharm编辑器

1、导入相关的包

# 导入相关的包
import pandas as pd
import numpy as np# 导入预处理的库
import sklearn.preprocessing as pre
# 训练集、测试集划分
from sklearn.model_selection import train_test_split# 逻辑回归
from sklearn.linear_model import LogisticRegression# 模型评估
from sklearn import metrics

2、读取数据

# 1、读取数据
data = pd.read_csv(open(r"风险识别.csv", encoding="gbk"))

首先,我们读取下数据,因为我们的数据名有中文,所以加上 open( )

此时如果打印查看数据 data ,在pycharm里会省略不少字段(显示不全)

所以加上以下字段才会显示全:

# 显示全部列
pd.set_option('display.max_columns', None)   # 显示完整的列
pd.set_option('display.expand_frame_repr', False)  # 设置不折叠数据
# 下面配置显示行
# pd.set_option('display.max_rows', None)  # 显示完整的行
# pd.set_option('display.max_colwidth', 100)

上面我注释了一些,因为如果数据太多,也就是行太多那就要加载好久来显示,除非你加上data.head()

这段完整代码:

# 1、读取数据
data = pd.read_csv(open(r"风险识别.csv", encoding="gbk"))pd.set_option('display.max_columns', None)   # 显示完整的列
pd.set_option('display.expand_frame_repr', False)  # 设置不折叠数据
# pd.set_option('display.max_rows', None)  # 显示完整的行
# pd.set_option('display.max_colwidth', 100)print(data.head())

在这里插入图片描述

异常值识别与处理:
如果发现异常值较多,也可能是分类的影响,因此不做处理

3、相关分析

corr = data.corr()
print(corr)

data.corr()表示了data中的两个变量之间的相关性,取值范围为[-1,1],取值接近-1,表示反相关,类似反比例函数,取值接近1,表正相关

在这里插入图片描述
由相关举证可以看出变量之间虽有相关,但也不是很强,因此可以进行逻辑回归。如果相关性强则进行特征筛选

4、分出目标列

# 3、分出目标列
X = data.drop("还款拖欠情况", axis=1)
Y = data["还款拖欠情况"]
print(X)

在这里插入图片描述

5、标准化

前面我们导入了标准化的包

# 4.标准化
std = pre.StandardScaler()
# 调用fit_transform提取并转换数据; 一步导出结果(训练和导出一步完成)
X_std = std.fit_transform(X)print(X_std)
print(X_std.shape)

在这里插入图片描述

6、划分训练集和测试集

# 5、划分训练集和测试集
X_train, X_test, Y_train, Y_test = train_test_split(X_std, Y, test_size=0.3, random_state=0)

7、训练模型

# 6、训练模型之 逻辑回归
lr = LogisticRegression(solver="sag")  # 实例化
lr.fit(X_train, Y_train)  # 训练数据

8、预测模型

# 7、预测模型
Y_pred = lr.predict(X_test)

9、模型评估

最前面我们导入了模型评估的包,这里就不演示了

# 8、模型评估
matrix = metrics.confusion_matrix(Y_test, Y_pred)  # 混淆矩阵
# 8、模型评估
matrix = metrics.confusion_matrix(Y_test, Y_pred)  # 混淆矩阵print(matrix)
print("准确率:{:.2%}".format(metrics.accuracy_score(Y_test, Y_pred)))# 即正确预测为正类的占全部预测为正类的的比例
print("精确率:{:.2%}".format(metrics.precision_score(Y_test, Y_pred)))
# 正确预测为正类的占全部实际为正类的的比例
print("召回率:{:.2%}".format(metrics.recall_score(Y_test, Y_pred)))print("F1值::{:.2%}".format(metrics.f1_score(Y_test, Y_pred, average='binary')))

这篇关于机器学习:银行信贷预测(简单学习)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/169271

相关文章

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio