news 2026/8/7 10:56:49

速通机器学习 03 | 逻辑回归:信用卡欺诈识别实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
速通机器学习 03 | 逻辑回归:信用卡欺诈识别实战

专栏前言
上一节我们学习线性回归,专门用来预测连续数字(回归任务);
本节学习逻辑回归,虽然名字带 “回归”,实际是工业风控最常用的二分类算法,用来区分两类数据:正常交易 / 欺诈盗刷。
案例采用银行信用卡交易数据集,完整复现风控建模全流程。

1. 什么是逻辑回归

1.1 核心原理

线性回归输出是无边界的实数,不能代表概率。逻辑回归在线性公式外套一层 Sigmoid 函数,把数值压缩到(0,1)区间,输出结果代表 “属于欺诈交易的概率”。
线性组合公式:


Sigmoid 激活函数:

1.2 分类判定规则

默认判断阈值 0.5:

→ 正类,欺诈交易(Class=1)

  1. → 负类,正常交易(Class=0)

风控场景可手动下调阈值,优先拦截可疑盗刷。

1.3 模型参数、损失函数与参数优化

  1. 初始化参数
    模型刚创建时,会自动随机初始化一组权重和截距,此时参数是随机值,预测结果完全不准。
  2. 损失函数
  3. 逻辑回归使用交叉熵损失函数,专门用于二分类任务,用来衡量预测概率和真实标签之间的差距,损失值越大,代表模型预测越离谱。
  4. 二分类交叉熵核心公式:
  5. 其中:为真实标签(0/1),为模型预测的正类概率,n 为样本总数。
  6. 梯度下降优化参数
    模型训练本质就是循环执行梯度下降:不断微调权重参数,持续缩小整体损失值,直到损失收敛、预测效果稳定,这一步由fit()方法自动完成,不需要手动计算。

1.4 正则参数 C 与正则化作用

sklearn 逻辑回归默认开启 L2 正则,
C是正则强度的倒数,完整带正则项的损失公式如下:


公式解析:前半部分为交叉熵损失,负责拟合数据;后半部分为 L2 正则惩罚项,专门约束权重参数:

  • C 越小:正则惩罚系数越大,正则约束越强,大幅限制权重参数的大小,压缩参数区间,减少模型对训练集噪声的记忆,缓解过拟合
  • C 越大:正则惩罚系数越小,正则约束越弱,模型放开参数限制,更容易贴合训练数据,易出现过拟合。

本次实战设置C=0.01,加大正则力度,避免模型在不平衡的信用卡数据集上过拟合。超参数 C 的最优取值无法凭经验直接确定,后面我们专门,系统学习如何自动筛选最优超参数 C。

2. 数据集业务介绍

数据集文件:creditcard.csv,模拟银行贷款 / 信用卡风控数据,该数据可以在本文开头下载。

数据样例:


字段说明:

  1. Time:交易时间戳,和欺诈无明显关联,建模直接删除
  2. V1~V28:脱敏加密特征(银行隐私数据 PCA 处理后结果)
  3. Amount:交易金额,数值跨度极大,必须标准化
  4. Class:分类标签,0 = 正常交易,1 = 欺诈交易
    数据集特点:样本极度不平衡,绝大多数为正常交易。

3. 完整建模流程 + 代码分步讲解

整套流程分为 5 步:读取数据→标准化预处理→划分特征标签→拆分训练测试集→训练模型并评估,逐段拆解代码含义。

3.1 第一步:导入 pandas,读取本地 CSV 数据

import pandas as pd # 读取信用卡交易数据集 data = pd.read_csv(r'D:\pythoncode2\bigdata_ai40\机械学习\data\creditcard.csv') # 打印前5行数据,查看数据结构 print(data.head())

讲解:

  1. import pandas as pd:导入表格处理工具,机器学习读取 csv 必用;
  2. pd.read_csv():读取本地 csv 文件,填写完整文件路径;
  3. data.head():输出前 5 行,快速核对字段、数据是否读取正常。

3.2 第二步:数据标准化 + 删除无用特征

# 导入标准化工具 from sklearn.preprocessing import StandardScaler # 创建标准化器对象 scaler = StandardScaler() 仅对交易金额Amount做Z-Score标准化 data['Amount'] = scaler.fit_transform(data[['Amount']]) 删除无关时间特征Time data = data.drop(['Time'],axis=1)

标准化公式:


讲解:

  1. StandardScaler:Z-Score 标准化工具,把数据缩放为均值 0、方差 1;
  2. 只处理 Amount 字段:V1-V28 本身已经脱敏标准化,无需重复处理;
  3. fit_transform():一边计算均值方差,一边完成数值缩放;
  4. drop(['Time'],axis=1):删除 Time 整列,axis=1 代表按列删除。

3.3 第三步:分离特征 X 与标签 y

# 导入数据集划分工具 from sklearn.model_selection import train_test_split 所有特征:去掉分类标签Class x_whole = data.drop('Class',axis=1) 预测标签:是否欺诈 y_whole = data.Class

讲解:

  1. 机器学习固定格式:X 是所有输入特征,y 是需要预测的结果标签;
  1. drop('Class',axis=1):把标签列从数据表剔除,剩余全部作为特征。

3.4 第四步:拆分训练集、测试集

# 70%训练集,30%测试集,固定随机种子保证结果可复现 x_train_w,x_test_w,y_train_w,y_test_w = train_test_split(x_whole,y_whole,test_size =0.3,random_state=1000)

讲解:

  1. test_size=0.3:30% 数据作为测试集,70% 用于训练;
  2. random_state=1000:固定随机划分规则,每次运行拆分结果一模一样,方便复现实验;
  3. 训练集:用来完成参数初始化、梯度下降优化;测试集:模拟陌生新数据,检验模型真实泛化效果。

3.5 第五步:创建逻辑回归模型、训练、预测评估

# 导入逻辑回归算法 from sklearn.linear_model import LogisticRegression # 初始化模型,设置正则系数C=0.01 lr = LogisticRegression(C=0.01) # 使用训练集完成模型训练 lr.fit(x_train_w,y_train_w) 在测试集上预测类别(0正常/1欺诈) print(lr.predict(x_test_w)) 输出训练集整体准确率 print(lr.score(x_train_w,y_train_w)) 计算测试集准确率 test_score = lr.score(x_test_w,y_test_w) print(test_score)

讲解:

  1. LogisticRegression(C=0.01):实例化逻辑回归,内部自动完成参数初始化,同时通过 C 控制正则化强度;
  2. .fit(x_train_w,y_train_w):训练核心代码,执行梯度下降算法,持续优化权重参数,最小化交叉熵损失;
  3. .predict():输入特征,输出每条样本预测类别;
  4. .score():自动计算准确率 = 预测正确样本数 / 总样本数。

重要提醒:本数据集正负样本失衡,单纯准确率无法客观评价欺诈识别能力,后续章节会讲解混淆矩阵、召回率等专业指标。

4. 逻辑回归优缺点

优点

  1. 训练速度快,适配银行海量交易流水;
  2. 模型可解释,每个特征有权重,是风控行业标准算法;
  3. 支持正则化,能通过 C 灵活控制拟合程度;
  4. 输出概率分值,业务可自定义风险阈值。

缺点

  1. 只能学习线性关系,复杂非线性数据拟合差;
  2. 对特征尺度敏感,金额类特征必须提前标准化;
  3. 原生仅支持二分类,多分类任务需要改造。

5. 本章小结

  1. 逻辑回归是二分类模型,Sigmoid 函数将线性计算转为 0~1 概率;
  2. 模型流程:随机初始化参数→交叉熵损失衡量误差→梯度下降优化参数;
  3. L2 正则通过超参数 C 控制强弱,抑制过拟合,下一节讲解最优 C 的筛选方法;
  4. 银行风控建模标准流程:读取数据→标准化清洗→拆分数据集→模型训练评估;
  5. 特征标准化是逻辑回归必要步骤,解决量纲差距带来的收敛问题;
  6. 不平衡分类场景不能只依靠准确率评估模型效果。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 10:55:54

AI项目必备:如何编写规范的agents.md文档

1. 项目概述:为什么agents.md的正确写法如此重要? 在开源社区混迹多年,我发现一个有趣的现象——几乎每个AI相关的GitHub仓库都会包含一个agents.md文件,但真正能把这个文件写对的项目却少得可怜。最近GitHub官方分析了2500多个热…

作者头像 李华
网站建设 2026/8/7 10:54:56

《女孩职场成长效率哲学 踩坑避坑实录》

《女孩职场成长效率哲学 踩坑避坑实录》 作者: 苏沁宁 (苏沁宁)技术方向: AI Agent 编排、云原生 AI 应用部署、AI 音乐生成、Kubernetes 驱动的智能运维 💡 导语与现场排障背景 在生产环境重构 技术女孩的职场成长与效率哲学 时,高并发场景下的资源抢…

作者头像 李华
网站建设 2026/8/7 10:52:26

CAN设备深度解析:从协议栈到硬件设计,构建工业数字神经末梢

1. 项目概述:从“CAN设备”到工业数字神经末梢“CAN设备”这四个字,对于很多刚接触工业控制、汽车电子或者机器人领域的朋友来说,可能既熟悉又陌生。熟悉是因为在各种技术文档、产品手册里频繁出现;陌生则在于,它不像一…

作者头像 李华
网站建设 2026/8/7 10:50:42

Java开发者必备:ElasticSearch安装与实战指南

1. 为什么Java开发者需要掌握ElasticSearch?在当今数据驱动的时代,Java开发者面临的挑战不再仅仅是编写业务逻辑代码。我清楚地记得2018年参与一个电商项目时,当商品数量突破百万级后,传统的MySQL LIKE查询响应时间从毫秒级骤增到…

作者头像 李华
网站建设 2026/8/7 10:50:04

STM32开发入门:基于CubeMX与Keil5的环境搭建与LED工程实战

1. 从零开始的抉择:为什么是STM32、Keil5与CubeMX? 如果你正准备踏入嵌入式开发的大门,或者刚从51单片机转向更复杂的32位世界,那么“STM32”、“Keil5”和“CubeMX”这三个词,大概率会同时出现在你的搜索框里。这感觉…

作者头像 李华