目录

一、数据背景与预处理

1.数据前五行

2.数据预处理步骤

二、逻辑回归的正则化参数选择

1.交叉验证选择最优C

2.为什么选择召回率作为评估指标?

三、参数选择的核心结论

四、后续优化方向


在银行贷款审批场景中,准确判断贷款人是否符合贷款条件(允许贷款为 0,拒绝贷款为 1)是风险控制的核心环节。本文将以银行贷款数据为例,详解逻辑回归模型的参数选择过程,帮助提升贷款审批的准确性。

一、数据背景与预处理

本次使用的银行贷款数据包含以下关键字段:

  • Time:贷款人标识(同一人可能在不同银行有记录)
  • Amount:贷款人收入(单位:万元)
  • V1-V28:28 个匿名特征(可能包含信用评分、负债情况等)
  • Class:贷款审批结果(0 = 允许贷款,1 = 拒绝贷款)

1.数据前五行

"Time","V1","V2","V3","V4","V5","V6","V7","V8","V9","V10","V11","V12","V13","V14","V15","V16","V17","V18","V19","V20","V21","V22","V23","V24","V25","V26","V27","V28","Amount","Class"
0,-1.3598071336738,-0.0727811733098497,2.53634673796914,1.37815522427443,-0.338320769942518,0.462387777762292,0.239598554061257,0.0986979012610507,0.363786969611213,0.0907941719789316,-0.551599533260813,-0.617800855762348,-0.991389847235408,-0.311169353699879,1.46817697209427,-0.470400525259478,0.207971241929242,0.0257905801985591,0.403992960255733,0.251412098239705,-0.018306777944153,0.277837575558899,-0.110473910188767,0.0669280749146731,0.128539358273528,-0.189114843888824,0.133558376740387,-0.0210530534538215,149.62,"0"
0,1.19185711131486,0.26615071205963,0.16648011335321,0.448154078460911,0.0600176492822243,-0.0823608088155687,-0.0788029833323113,0.0851016549148104,-0.255425128109186,-0.166974414004614,1.61272666105479,1.06523531137287,0.48909501589608,-0.143772296441519,0.635558093258208,0.463917041022171,-0.114804663102346,-0.183361270123994,-0.145783041325259,-0.0690831352230203,-0.225775248033138,-0.638671952771851,0.101288021253234,-0.339846475529127,0.167170404418143,0.125894532368176,-0.00898309914322813,0.0147241691924927,2.69,"0"
1,-1.35835406159823,-1.34016307473609,1.77320934263119,0.379779593034328,-0.503198133318193,1.80049938079263,0.791460956450422,0.247675786588991,-1.51465432260583,0.207642865216696,0.624501459424895,0.066083685268831,0.717292731410831,-0.165945922763554,2.34586494901581,-2.89008319444231,1.10996937869599,-0.121359313195888,-2.26185709530414,0.524979725224404,0.247998153469754,0.771679401917229,0.909412262347719,-0.689280956490685,-0.327641833735251,-0.139096571514147,-0.0553527940384261,-0.0597518405929204,378.66,"0"
1,-0.966271711572087,-0.185226008082898,1.79299333957872,-0.863291275036453,-0.0103088796030823,1.24720316752486,0.23760893977178,0.377435874652262,-1.38702406270197,-0.0549519224713749,-0.226487263835401,0.178228225877303,0.507756869957169,-0.28792374549456,-0.631418117709045,-1.0596472454325,-0.684092786345479,1.96577500349538,-1.2326219700892,-0.208037781160366,-0.108300452035545,0.00527359678253453,-0.190320518742841,-1.17557533186321,0.647376034602038,-0.221928844458407,0.0627228487293033,0.0614576285006353,123.5,"0"

2.数据预处理步骤

首先对数据进行标准化和特征筛选(代码来自银行贷款(参数选择).py):

import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler# 读取数据
data = pd.read_csv('creditcard.csv')# 标准化收入特征(消除量纲影响)
scaler = StandardScaler()
data['Amount'] = scaler.fit_transform(data[['Amount']])# 移除重复标识特征(Time为贷款人在不同银行的记录,对审批结果无直接影响)
data = data.drop(['Time'], axis=1)# 划分特征与标签
X = data.iloc[:, :-1]  # 所有特征(含V1-V28和标准化后的Amount)
y = data['Class']      # 审批结果(0/1)

预处理的核心目的是:

  1. 标准化连续特征(如收入),避免因数值范围差异影响模型权重
  2. 剔除无关特征(如 Time),减少噪声干扰

二、逻辑回归的正则化参数选择

逻辑回归中,正则化参数C是控制模型复杂度的关键。C值越小,正则化强度越高,可有效防止过拟合(过度拟合训练数据中的噪声)。

1.交叉验证选择最优C

通过 8 折交叉验证,在不同C值下评估模型的召回率(重点关注拒绝贷款的识别能力):

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split, cross_val_score# 划分训练集(70%)和测试集(30%)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1000  # 固定随机种子,保证结果可复现
)# 候选参数范围
c_param_range = [0.01, 0.1, 1, 10, 100]
scores = []# 遍历参数并评估
for c in c_param_range:# 初始化模型(L2正则化, solver选择lbfgs)clf = LogisticRegression(C=c,               # 正则化参数penalty='l2',      # L2正则化(防止系数过大)solver='lbfgs',    # 优化算法max_iter=1000      # 增加迭代次数确保收敛)# 交叉验证计算召回率(关注拒绝贷款的识别能力)recall_scores = cross_val_score(clf, X_train, y_train, cv=8, scoring='recall')mean_recall = recall_scores.mean()  # 平均召回率scores.append(mean_recall)print(f"C={c}时,平均召回率:{mean_recall:.4f}")# 选择最优参数(召回率最高对应的C)
best_c = c_param_range[np.argmax(scores)]
print(f"\n最优惩罚因子为:{best_c}")

2.为什么选择召回率作为评估指标?

在贷款审批中:

  • 召回率(针对 Class=1)= 正确拒绝的贷款申请 / 实际应拒绝的贷款申请
  • 高召回率可减少 "误批" 风险(将本应拒绝的申请误判为允许),降低银行坏账率

三、参数选择的核心结论

  1. C值与模型的关系

    • 过小的C(如 0.01)会导致模型欠拟合(过度简化,识别能力不足)
    • 过大的C(如 100)可能导致过拟合(过度关注训练数据细节,泛化能力差)
  2. 业务导向的参数选择
    银行需在 "审批效率" 和 "风险控制" 间平衡:

    • 若侧重风险控制(减少坏账),应选择召回率更高的C
    • 若侧重用户体验(减少误拒),可适当降低对召回率的要求

四、后续优化方向

  1. 结合采样技术:对于不平衡数据(如拒绝贷款的样本占比低),可采用上采样(SMOTE)或下采样平衡数据分布(参考银行贷款2(下采样).py和银行贷款3(过采样).py)。

  2. 阈值调整:逻辑回归默认以 0.5 为分类阈值,可通过调整阈值进一步优化召回率(如降低阈值使模型更倾向于拒绝高风险申请)。

  3. 特征工程:深入分析 V1-V28 等匿名特征与贷款审批的关联性,筛选更具预测力的特征。

通过科学的参数选择和优化,逻辑回归模型可为银行贷款审批提供可靠的决策支持,在控制风险的同时提高审批效率。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构前篇 - 深入解析数据结构之复杂度

目录一、数据结构前言1.1 数据结构1.2 算法二、算法效率2.1 复杂度的概念三、时间复杂度3.1 大O的渐进表示法3.2 时间复杂度计算示例3.2.1 示例13.2.2 示例23.2.3 示例33.2.4 示例43.2.5 示例53.2.6 示例63.2.7 示例7四、空间复杂度4.1 空间复杂度计算示例4.1.1 示例14.1.2 示例…

Master Prompt:AI时代的万能协作引擎

1. Master Prompt:为什么它正在重塑AI协作范式大模型落地的最大痛点不是技术本身,而是人机协作的断裂。当企业采购了昂贵的AI系统,却发现输出内容反复偏离预期,团队成员抱怨“AI总听不懂我要什么”,这种场景每天在无数…

《Kubernetes部署篇:基于Kylin V10+ARM架构CPU使用containerd部署K8S 1.33.3容器板集群(一主多从)》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:企业级K8s集群运维实战 一、架构图 如下图所示: 二、环境信息 基于x86_64+aarch64架构使用containerd部署K8S 1.33.3集群资源合集(一主多从) 2、部署规划 主机名 K8S版本 系统版本 CPU架构 内核版…

一次性接收大量上传图片,后端优化方式

文章目录1. 分块接收与流式处理2. 异步处理3. 内存映射与临时文件4. 数据库优化5. 缓存策略6. 压缩与格式优化7. 限流与并发控制8. 分布式存储9. 响应优化10. 监控与错误处理11. 数据库连接池优化1. 分块接收与流式处理 使用流式处理避免将所有图片加载到内存中: …

二分查找(基础)

竞赛中心 - 蓝桥云课 #include <iostream> #include<bits/stdc.h> using namespace std; #define int long long int N; struct NO {int A,B; }a[10001]; bool ok(int V) {for (int i 0; i < N; i){if (a[i].A / V ! a[i].B){return false;}}return true; } …

流式编程学习思路

流式编程学习思路 作为Java初级工程师,想要掌握流式编程并向高级工程师进阶,需要从基础到进阶逐步掌握,结合实战场景深化理解。以下是为你量身定制的学习清单和思路: 一、基础阶段:吃透 Java Stream 核心API 1. 掌握 Stream 的基本概念 什么是 Stream:理解它与集合(Co…

13-14linux三剑客grep,sed,awk

目录 三剑客支持扩展正则写法 grep命令 sed命令 sed指定行查找&#xff1a; sed模糊过滤文件内容 sed之删除&#xff1a; sed之替换&#xff1a; sed追加插入替换&#xff1a; sed后向引用&#xff1a; awk命令 awk按照行查找 awk模糊过滤文件内容 awk取列 awk指…

损失函数和调度器相关类代码回顾理解 |nn.CrossEntropyLoss\CosineAnnealingLR

目录 nn.CrossEntropyLoss CosineAnnealingLR nn.CrossEntropyLoss loss_func nn.CrossEntropyLoss(reduction"sum") 定义nn.CrossEntropyLoss交叉熵损失函数&#xff0c;reduction参数设置为"sum"&#xff0c;表示将所有样本的损失相加。reduction 参…

中国不同类型竹林分布数据

中国竹林分布的主要特点简介&#xff1a;总体分布格局&#xff1a;核心区域&#xff1a; 主要分布在长江流域及以南的广大亚热带和热带地区。北界&#xff1a; 大致以黄河流域为北界&#xff0c;但天然成片竹林在秦岭-淮河一线以南才比较普遍。人工引种或特殊小环境下&#xff…

Sqlserver备份恢复指南-完整备份恢复

博主会用简单清晰的方式&#xff0c;带你系统学习使用T-SQL命令行的方式 给SQL Server 做备份与恢复。我们按照从零开始、逐步深入的路线来讲解&#xff01; 完整备份恢复-差异增量备份恢复-事务日志备份恢复 &#x1f538; SQL Server 备份类型&#xff1a;类型说明完整备份&a…

AI 调酒师上岗!接管酒吧吧台

7月29日&#xff0c;马老师的 HHB 音乐酒吧在阿里巴巴西溪园区正式开业&#xff0c;开业这天迎来了一位神秘嘉宾“AI 调酒师”&#xff01; 这位 AI 调酒师不仅能根据你的MBTI、今日情绪、星座运势、江湖花名等为你特调一杯鸡尾酒&#xff0c;还能为这杯酒配上故事和诗文。 点…

【C++进阶】一文吃透静态绑定、动态绑定与多态底层机制(含虚函数、vptr、thunk、RTTI)

【C进阶】一文吃透静态绑定、动态绑定与多态底层机制&#xff08;含虚函数、vptr、thunk、RTTI&#xff09;作者&#xff1a;你的C教练 日期&#xff1a;2025-08-01目录 静态绑定 vs 动态绑定非虚函数的三大坑多态的四要素虚析构函数为什么必须写&#xff1f;探秘 vptr/vftable…

VUE基础知识2

1.计算属性&#xff1a;使用计算属性来描述依赖响应式状态的复杂逻辑。关键字computed:{}//计算属性&#xff0c;使用的时候和函数方法不一样&#xff0c;不需要加括号。简单来说就是模板方法的复杂逻辑放到了计算属性中去。2.计算属性缓存VS方法&#xff1a;计算属性值会基于其…

在PyCharm中将现有Gitee项目重新上传为全新项目

如果你想将当前本地的Gitee项目重新上传为一个全新的Gitee项目&#xff08;保留本地代码但断开与原仓库的关联&#xff09;&#xff0c;可以按照以下步骤操作&#xff1a; 删除旧的Git远程仓库关联 打开PyCharm&#xff0c;进入你的项目 点击顶部菜单 Git > Manage Remotes …

设计模式1:创建型模式

设计模式1&#xff1a;创建型模式 设计模式2&#xff1a;结构型模式&#xff08;编写中&#xff09; 设计模式3&#xff1a;行为型模式&#xff08;编写中&#xff09; 前言 设计模式是软件开发中经过验证的可复用解决方案&#xff0c;它们源自实践、提炼于经验&#xff0c;并…

React--》规划React组件库编码规范与标准 — Button篇

目前前端组件化已经成为前端开发的核心思想之一&#xff0c;在这篇文章中将深入探讨如何规划一个规范的Button组件&#xff0c;让它不仅能高效支持不同的功能需求还能确保跨项目、跨团队的一致性&#xff0c;抛砖引玉的方式引出后面组件库的其他组件的开发&#xff01; 目录 B…

中科米堆CASAIM金属件自动3d测量外观尺寸三维检测解决方案

金属零部件的外观尺寸检测直接关系到产品的装配精度和使用性能。CASAIM基于激光扫描技术的自动化三维扫描系统&#xff0c;为金属加工行业提供了高效的自动3D测量解决方案&#xff0c;有效解决了传统检测方式效率低、覆盖面有限等问题。激光扫描技术在金属件测量中优势明显。与…

开源数据同步中间件,支持MySQL、Oracle

DBSyncer&#xff08;英[dbsɪŋkɜː(r)]&#xff0c;美[dbsɪŋkɜː(r) 简称dbs&#xff09;是一款开源的数据同步中间件&#xff0c;提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务&#xff0…

中英混合的语音识别XPhoneBERT 监督的音频到音素的编码器结合 f0 特征LID

完整项目包获取点击文末名片完成一个 Code-Switching&#xff08;中英混合&#xff09;的语音识别系统&#xff0c;整个流程如下思路进行&#xff1a; 163. (Step 1) 训练音频到音素的编码器&#xff08;Audio → Phoneme Encoder&#xff09; 你已经完成了此部分。核心思路是利…

Param关键字的使用

1&#xff1a;当一个方法的某一个参数个数不固定的时候&#xff0c;可以使用Param2:可变的方法参数必须定义为数组类型3&#xff1a;该参数必须放在方法参数的最后&#xff0c;应且只有一个4&#xff1a;参数必须为一维数组5&#xff1a;params不能和ref和out组合使用namespace…