当前位置: 首页 > news >正文

逻辑回归算法 银行贷款资格判断案例,介绍混淆矩阵与正则化惩罚

目录

一.银行贷款资格判断案例

1.数据介绍与特征分析

2.数据标准化处理

 3.数据切分

4.创建模型 

5.模型训练与计算正确率

6.分类报告解读

二.介绍混淆矩阵

1.混淆矩阵

2.核心评价指标

三.正则化惩罚

1.正则化惩罚的目的与原理

2.正则惩化方法分类

3.正则化强度参数C


一.银行贷款资格判断案例

creditcard.csv文件部分内容如下:

1.数据介绍与特征分析

  • 数据量为143兆,包含28万4808条真实银行贷款数据,每条数据代表一个用户。
  • 特征包括V1-V28(脱敏处理后的特征)和amount(未脱敏的收入特征),共29个特征,最后一列为class(贷款结果:0可贷款,1不可贷款)。
  • 数据脱敏处理的原因:防止黑客攻击泄露敏感信息(如年收入、婚姻状况等),脱敏后数据通过算法压缩为不易解读的形式(如V1-V28的值在-1到1之间)

2.数据标准化处理

  • 问题:amount特征的值范围(0-500)远大于其他特征(-1到1),导致模型训练时权重分配不均。
  • 解决方案
    • Z标准化:将数据压缩到均值为0、标准差为1的范围内(适合大部分特征,如V1-V28)。
    • 01标准化:将数据压缩到0-1之间(适用于无负值的特征)。
  • 选择Z标准化的原因:amount特征与其他特征(V1-V28)的分布更匹配(有正负值,大部分在-1到1之间)。
  • 代码实现:使用StandardScaler对amount列进行Z标准化,并删除无关的time列。
import pandas as pddata = pd.read_csv('creditcard.csv')
# 数据标准化
from sklearn.preprocessing import StandardScaler
scaler=StandardScaler()
data['Amount']=scaler.fit_transform(data[['Amount']])
data=data.drop(['Time'],axis=1)

 3.数据切分

将数据切分为训练集(70%)和测试集(30%)。

X=data.iloc[:,:-1]
y=data.iloc[:,-1]
from sklearn.model_selection import train_test_split
train_x,test_x,train_y,test_y=train_test_split(X,y,test_size=0.3,random_state=500)

4.创建模型 

from sklearn.linear_model import LogisticRegression
lr=LogisticRegression(C=0.01)

5.模型训练与计算正确率

将切分号的数据放入训练方法fit()中完成训练,通过predict()方法预测测试集的结果,并计算得分

lr.fit(train_x,train_y)
result=lr.predict(test_x)
score=lr.score(test_x,test_y)
print(score)0.9990988144142879

计算得出准确率有0.999即1000人中仅1人判断错误,但我们可以发现模型将所有结果预测为零时,正确率仍为99.9%(28万4807条数据中仅492条类别为一,其余全为1)。

我们可以通过绘图展示数据分布:类别为零28万4315条,类别为一492条,极度不均衡。

import matplotlib.pyplot as plt
class_= pd.value_counts(data['Class'])
class_.plot(kind='bar')
plt.show()

 

所以我们必须使用接下来的分类报告解读

6.分类报告解读

from sklearn import metrics
print(metrics.classification_report(test_y,result))

  • 使用classification_report显示:
    • 类别为零:精确率、召回率、F1值均为1(因模型全预测为零)。
    • 类别为一:关键指标仅0.56,表明模型对少数类预测能力极差。
  • 银行系统更关注少数类(如贷款违约)的识别,所以当前模型不达标有待后续优化

二.介绍混淆矩阵

1.混淆矩阵

  • 混淆矩阵:将预测结果与真实值分类为四类:
    • TP(True Positive):真实为1,预测为1。
    • FP(False Positive):真实为0,预测为1。
    • FN(False Negative):真实为1,预测为0。
    • TN(True Negative):真实为0,预测为0。

2.核心评价指标

  • 准确率(ACC):主对角线预测正确的比例((TP+TN)/(TP+FP+FN+TN))。
  • 精确率(Precision):预测为1的样本中实际为1的比例(TP/(TP+FP))。
  • 召回率(Recall):真实为1的样本中被正确预测的比例(TP/(TP+FN)),银行/医疗等领域更关注此指标。
  • F1值:精确率与召回率的调和平均数(2PrecisionRecall/(Precision+Recall))。

三.正则化惩罚

1.正则化惩罚的目的与原理

  • 正则化的核心目的是防止模型过拟合,通过引入惩罚项(L1或L2)使模型参数分布更均匀,避免极端值。
  • 过拟合的表现:训练时正确率极高(如100%),但测试时正确率显著下降(如60%),模型泛化能力差。
  • 正则化通过调整参数权重(如ω)的分布,抑制对单一特征的过度依赖,提升模型稳定性。

2.正则惩化方法分类

  • L1正则化:惩罚项为参数绝对值之和(Σ|ω|),倾向于产生稀疏解(部分参数为0)。
  • L2正则化:惩罚项为参数平方和(½Σω²),使参数分布更均匀,默认常用方法。

3.正则化强度参数C

  • C是正则化系数λ的倒数(C=1/λ),控制惩罚力度:
    • C越小(λ越大):惩罚力度越强,模型更简单,防止过拟合。
    • C越大(λ越小):惩罚力度越弱,模型复杂度可能升高。
  • 常用C值:0.01、0.1、1(默认)、10、100、1000,需通过调参(K折交叉验证方法)获取最优值

下一篇进行讲解进一步的优化如交叉验证方法和调整阈值等

http://www.dtcms.com/a/310445.html

相关文章:

  • Google机器学习基础(语言模型)
  • 第13届蓝桥杯Python青少组选拔赛(STEMA)2021年8月真题
  • osloader!DoGlobalInitialization函数分析之HW_CURSOR--NTLDR源代码分析之设置光标
  • Python编程基础与实践
  • Linux 用户与组管理及权限委派
  • 自由学习记录(75)
  • [2025CVPR-图象处理方向]Z-Magic:零样本多属性引导图像创建器
  • SpringBoot与Rust实战指南
  • 深度SEO优化的方式有哪些,从技术层面来说
  • GitHub 趋势日报 (2025年07月31日)
  • 【实战】Dify从0到100进阶--插件开发(1)Github爬取插件
  • ansible.cfg 配置文件生成
  • [css]切角
  • 第十四天:C++内存管理
  • Agents-SDK智能体开发[2]之工具调用
  • Nginx 来正确地托管网站服务
  • 《软件测试与质量控制》实验报告一 测试用例设计
  • 自动化框架pytest
  • 小学阶段的学习机推荐:科大讯飞T30、Lumie 10学习机暑期16项AI功能升级
  • 2025电赛G题-发挥部分-参数自适应FIR滤波器
  • python列表推导式
  • uniapp基础 (二)
  • 电商作图,商品图、模特图、促销海报设计
  • Unity优化技巧:自动隐藏视野外的3D模型
  • 【人工智能-16】机器学习:概念、工具介绍、数据集、特征工程
  • 铁皮矫平机进阶小百科
  • C# _Json数据
  • MySQL 45 讲 18-20
  • React 19 革命性升级:编译器自动优化,告别手动性能调优时代
  • 携程PMO资深经理、携程技术委员会人工智能委员会秘书陈强受邀为PMO大会主持人