机器学习:基于逻辑回归对某银行客户违约预测分析

news2024/11/25 7:19:15

机器学习:基于逻辑回归对某银行客户违约预测分析


文章目录

  • 机器学习:基于逻辑回归对某银行客户违约预测分析
  • 一、实验目的
  • 二、实验原理
  • 三、实验环境
  • 四、实验内容
  • 五、实验步骤
    • 1.逻辑回归
    • 2.业务理解
    • 3.读取数据
    • 4.数据理解
    • 5.数据准备
    • 6.逻辑回归模型训练
    • 7.模型评价
  • 总结


一、实验目的

1.理解逻辑回归原理

2.掌握scikit-learn操作逻辑回归方法

二、实验原理

机器学习是博大精深的,除了我们上一次说的线性回归,还有一类重要的回归就是逻辑回归。逻辑回归其实用于二分分类问题,用于判断一个离散性的特征得到的标签类型的概率。举个例子,你是否喜欢一首歌是通过很多这个歌的特征(如节奏、强度等)来判断的,那么我们的数据集就是各种歌的特征,而返回的结果则是一个非1即0,不是喜欢就是不喜欢的结果:
在这里插入图片描述

而机器学习可以做到什么呢?它会通过模型形成一个决策面,在你喜欢和不喜欢的歌之间划出一条分界线,就像这样:
在这里插入图片描述

用线性回归的拟合线已经无法很好的表示结果了,这时候就是使用逻辑回归来分类的时候了,而对于Logistic Regression来说,其思想也是基于线性回归(Logistic Regression属于广义线性回归模型)。其公式如下:
在这里插入图片描述
其中,
在这里插入图片描述
被称作sigmoid函数,我们可以看到,Logistic Regression算法是将线性函数的结果映射到了sigmoid函数中。sigmoid的函数图形如下:
在这里插入图片描述
我们可以看到,sigmoid的函数输出是介于(0,1)之间的,中间值是0.5,于是之前的公式 hθ(x) 的含义就很好理解了,因为 hθ(x) 输出是介于(0,1)之间,也就表明了数据属于某一类别的概率,例如 :

hθ(x)hθ(x)<0.5 则说明当前数据属于A类;

hθ(x)hθ(x)>0.5 则说明当前数据属于B类。

所以我们可以将sigmoid函数看成样本数据的概率密度函数

三、实验环境

Python 3.6.1以上

Jupyter

四、实验内容

根据逻辑回归,分析银行违约客户的各项特征,推测某一客户违约的情况

五、实验步骤

1.逻辑回归

逻辑回归用于二分分类问题,回归是一种极易理解的模型,就相当于y=f(x),表明自变量x与因变量y的关系。最常见问题有如医生治病时的望、闻、问、切,之后判定病人是否生病或生了什么病,其中的望闻问切就是获取自变量x,即特征数据,判断是否生病就相当于获取因变量y,即预测分类。

2.业务理解

某银行违约客户信息表如下:(这里只展示了部分数据)我们通过银行客户资料违约情况表来做逻辑回归分析,其中的年龄、教育、工龄、地址、收入、 负债率、信用卡负债、其他负债就是获取自变量x,即特征数据,判断是否违约就相当于获取因变量y,即预测分类。
在这里插入图片描述

3.读取数据

1.编写代码,读取数据

import numpy as np
import pandas as pd
data = pd.read_excel(r'D:\CSDN\数据分析\逻辑回归\loandata.xls')
data.head()

在这里插入图片描述

4.数据理解

1.查看数据结构

data.shape

在这里插入图片描述

说明:loandata.xls数据位700行9列

2.查看数据列名称

data.columns

在这里插入图片描述

说明:loandata.xls中列名称为:‘年龄’‘教育’‘工龄’‘地址’‘收入’‘负债率’‘信用卡负债’‘其他负债’’违约‘

5.数据准备

数据准备就是获得特征数据和预测分类

1.删除’违约‘这一列数据得到特征数据

X_Data = data.drop(['违约'],axis = 1)
X_Data.head()

在这里插入图片描述

2.获取’违约‘这列数据得到预测分类

y_data = np.ravel(data[['违约']])
y_data[0:5]

在这里插入图片描述

6.逻辑回归模型训练

1.创建新的特征矩阵

X2_data = data.drop(['年龄','教育','收入','其他负债','违约'],axis=1)  
X2_data.head() 

在这里插入图片描述

2.建立训练数据和测试数据

  • train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例选取训练数据(train)和测试数据(test)

  • 第1个参数:所要划分的样本特征

  • 第2个参数:所要划分的样本标签

  • random_state:它的用途是在随机划分训练集和测试集时候,划分的结果并不是那么随机,也即,确定下来random_state是某个值后,重复调用这个函数,划分结果是确定的

from sklearn.model_selection import  train_test_split  
X_train,X_test,y_train,y_test = train_test_split(X2_data,y_data,random_state=1)  
print(X_train.shape)  
print(X_test.shape) 

在这里插入图片描述

3.进行逻辑训练

#导入逻辑回归包  
from sklearn.linear_model import LogisticRegression  
# 创建模型:逻辑回归  
lr = LogisticRegression()  
#训练模型  
lr.fit(X_train,y_train)

4.查看训练模型参数

lr.coef_

在这里插入图片描述

5.查看截距

#训练模型截距  
lr.intercept_ 

在这里插入图片描述

6.预测数据

使用模型的predict方法对划分的X测试数据可以进行预测得值“违约”情况

lr.predict(X_test) 

在这里插入图片描述

7.模型评价

1.我们使用“准确率"来评估模型:

#模型评价的平均正确率  
lr.score(X_test,y_test) 

在这里插入图片描述

得到的结果准确率为0.834


总结

逻辑回归用于二分分类问题,回归是一种极易理解的模型,就相当于y=f(x),表明自变量x与因变量y的关系。最常见问题有如医生治病时的望、闻、问、切,之后判定病人是否生病或生了什么病,其中的望闻问切就是获取自变量x,即特征数据,判断是否生病就相当于获取因变量y,即预测分类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/365401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【第41天】实现一个简单选择排序

本文已收录于专栏&#x1f338;《Java入门一百例》&#x1f338;学习指引序、专栏前言一、选择排序二、【例题1】1.题目描述2、解题思路3、模板代码三、推荐专栏序、专栏前言 本专栏开启&#xff0c;目的在于帮助大家更好的掌握学习Java&#xff0c;特别是一些Java学习者难以在…

「epoll」深入linux内核中是如何实现多路的IO管理的

进程在 Linux 上是一个开销不小的家伙&#xff0c;先不说创建&#xff0c;光是上下文切换一次就得几个微秒。所以为了高效地对海量用户提供服务&#xff0c;必须要让一个进程能同时处理很多个 tcp 连接才行。现在假设一个进程保持了 10000 条连接&#xff0c;那么如何发现哪条连…

实战:手把手教你colossal-AI复现Chatgpt的流程

相信很多人都看了使用colossal-AI复现Chatgpt的流程的文章&#xff0c;但实际上看过了&#xff0c;不免有人发出“说得贼明白&#xff0c;就是自己做不出来”的感叹吧。本人公开一下实战过程&#xff0c;给有兴趣复现chatgpt流程的朋友一个参考。 一、环境搭建&#xff1a; 1…

Redis四 原理篇

《Redis四 原理篇》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《Redis四 原理篇》《Redis四 原理篇》1、原理篇-Redis数据结构1.1 Redis数据结构-动态字符串1.2 Redis数据结构-intset1.3 Redis数据结构-Dict1.4 Redis数据结构-ZipList1.4.1 Redis数据…

【Linux】进程间通信(万字详解)—— 匿名管道 | 命名管道 | System V | 共享内存

&#x1f308;欢迎来到Linux专栏~~进程通信 (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort目前状态&#xff1a;大三非科班啃C中&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句鸡汤…

华为OD机试 - 区块链文件转储系统(Python)【2023-Q1 新题】

华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 区块链文件转储系…

华为OD机试真题 用 C++ 实现 - 静态扫描最优成本

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

什么蓝牙耳机适合打游戏?打游戏不延迟的蓝牙耳机

为了提升游戏体验&#xff0c;除了配置强悍的主机外&#xff0c;与之搭配蓝牙耳机等外设产品也尤为重要&#xff0c;今天就带大家来了解一下以下几款适合玩游戏&#xff0c;低延迟操作的蓝牙耳机。 第一款&#xff1a;南卡小音舱蓝牙耳机 参考价格&#xff1a;239元 推荐理由…

Powershell Install java 13

java 前言 Java具有大部分编程语言所共有的一些特征&#xff0c;被特意设计用于互联网的分布式环境。Java具有类似于C语言的形式和感觉&#xff0c;但它要比C语言更易于使用&#xff0c;而且在编程时彻底采用了一种以对象为导向的方式。 java download javadownloadPowersh…

CleanMyMac4.12最新Mac电脑系统垃圾清理神器

CleanMyMac是Mac一款神器&#xff0c;特别是清理已卸载软件残留垃圾文件信息库比较全面。 clearmymac以极其快速和时尚的方式为您提供及时的建议&#xff0c;组织&#xff0c;更新和保护您的Mac。完全支持macOS 11&#xff08;Big Sur&#xff09;操作系统&#xff1b;它以其简…

「TCG 规范解读」初识 TCG 身份认证

可信计算组织&#xff08;Ttrusted Computing Group,TCG&#xff09;是一个非盈利的工业标准组织&#xff0c;它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立&#xff0c;并采纳了由可信计算平台联盟&#xff08;the Trusted Computing Platform Alli…

第10天-商品服务(分层领域模型及规格参数编码实现)

1.分层领域模型规约 DO&#xff08; Data Object&#xff09;&#xff1a; 此对象与数据库表结构一一对应&#xff0c;通过 DAO 层向上传输数据源对象。DTO&#xff08; Data Transfer Object&#xff09;&#xff1a;数据传输对象&#xff0c; Service 或 Manager 向外传输的…

【likeshop多商户】电子面单商家直播上线啦~

likeshop多商户商城v2.2.0版本更新啦&#xff01; 新增功能&#xff1a; 商家直播 单子面单 优化&#xff1a; 个人中心优惠券数量统计优化 修复&#xff1a; 秒杀商品待审核时&#xff0c;下单价格计算错误 个人中心修改头像后地址保存错误 「商家直播」 提升品牌知名度…

矩阵中的路径 AcWing (JAVA)

请设计一个函数&#xff0c;用来判断在一个矩阵中是否存在一条路径包含的字符按访问顺序连在一起恰好为给定字符串。 路径可以从矩阵中的任意一个格子开始&#xff0c;每一步可以在矩阵中向左&#xff0c;向右&#xff0c;向上&#xff0c;向下移动一个格子。 如果一条路径经过…

【c语言】预处理

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;> c语言学习 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是…

设计模式--工厂模式

这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。在工厂模式中&#xff0c;我们在创建对象时不会对客户端暴露创建逻辑&#xff0c;并且是通过使用一个共同的接口来指向新创建的对象。   工厂模式主要使用了C的多态特性。将存在继承关系的类&a…

通过一张照片来定位拍摄地点和网站的域名 LA CTF 2023

简介 这次打ctf遇到了一个比较经典的osint类题目&#xff0c;在这里分享一下如何做此类题目 题目链接&#xff1a; https://platform.lac.tf/challs题目简介&#xff1a; 你能猜出这个猫天堂的名字吗&#xff1f;答案是此位置的网站域。例如&#xff0c;如果答案是 ucla&…

浅谈分布式锁的原理

1.业务场景引入 在进行代码实现之前&#xff0c;我们先来看一个业务场景&#xff1a; 系统A是一个电商系统&#xff0c;目前是一台机器部署&#xff0c;系统中有一个用户下订单的接口&#xff0c;但是用户下订单之前一定要去检查一下库存&#xff0c;确保库存足够了才会给用户…

SPINAND UBI 离线烧录 开发指南

SPINAND UBI 离线烧录 开发指南 1 概述 编写目的: 介绍Sunxi SPINand 烧写时的数据布局 2 名词解释 词义UBIunsorted block imagePEBphysical erase blockLEBlogical erase block PEB 和logical block 关系 1 PEB 1 logical block 1 logical block 2 physical blocks3 总…

React从入门到精通二

React从入门到精通之购物车案例1. 购物车需求说明使用到的data list2. 项目code1. 购物车需求说明 list data展示到列表中每个item的通过按钮来控制购买的数据量删除按钮可以删除当前的itemTotal Price计算当前购物车的总的价格 使用到的data list const books [{id: 1,name…