2.线性回归与逻辑回归

发布时间:2026/9/15 10:54:37

2.线性回归与逻辑回归 2.1两者到底有什么区别线性回归解决问题回归预测预测连续数值输入特征 → 输出一个具体数字适用房价、销量、血压、温度预测逻辑回归解决问题二分类问题判断类别输入特征 → 输出概率判定 0 或 1适用是否违约、是否通过贷款、是否患病2.2实战案例一多元线性回归血压预测2.2.1 项目场景根据用户的体重、年龄两个特征预测人体收缩血压是典型的多元线性回归任务。2.2.2 完整代码import pandas as pd from sklearn.linear_model import LinearRegression # 读取数据集 data pd.read_csv(多元线性回归.csv, encodingGBK, enginepython) # 构建特征和标签 x data[[体重, 年龄]] # 特征 y data[[血压收缩]] # 预测目标 # 建模 训练 lr_model LinearRegression() lr_model.fit(x, y) # 模型评估 R² score lr_model.score(x, y) print(模型拟合度 R², score)输出0.9461441227520285 进程已结束,退出代码02.2.3 代码详解拟合核心概念简单来说就是让模型找到数据的规律画出一条最贴合所有数据的直线/曲线。所有的数据点都是散乱的拟合的过程就是模型不断调整参数尽可能让直线贴近大部分数据从而学习到特征和目标值的关联关系。fit(x, y)执行拟合过程模型自动学习数据规律求解出最优线性方程score()返回R²拟合系数衡量拟合效果好坏越接近 1 代表直线越贴合数据、模型效果越好2.2.4 小结线性回归 拟合数据、预测数值2.3 实战案例二逻辑回归银行贷款风险判断2.3.1 项目场景银行需要根据用户交易、金额、行为特征自动判断用户0正常用户可以放款1高风险用户存在违约风险拒绝放款这是典型的不平衡二分类问题正常用户远多于风险用户。2.3.2 完整代码import pandas as pd import matplotlib.pyplot as plt from pylab import mpl from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression # 1. 读取数据 data pd.read_csv(r./creditcard.csv) print(data.head()) # 2. 数据标准化金额字段量纲太大 scaler StandardScaler() data[Amount] scaler.fit_transform(data[[Amount]]) # 3. 删除无用字段 data data.drop([Time], axis1) # 4. 查看样本分布不平衡数据 mpl.rcParams[font.sans-serif] [Microsoft YaHei] mpl.rcParams[axes.unicode_minus] False labels_count data[Class].value_counts() print(labels_count) # 绘制样本分布图 plt.title(银行贷款风险样本分布) plt.xlabel(0正常用户 1高风险用户) plt.ylabel(样本数量) labels_count.plot(kindbar) plt.show() # 5. 划分训练集、测试集 X_whole data.drop(Class, axis1) y_whole data.Class x_train_w, x_test_w, y_train_w, y_test_w train_test_split( X_whole, y_whole, test_size0.3, random_state1000) # 6. 逻辑回归建模训练 lr LogisticRegression(C0.01, max_iter1000) lr.fit(x_train_w, y_train_w) # 7. 模型评估 test_predicted lr.predict(x_test_w) result lr.score(x_test_w, y_test_w) print(测试集准确率, result)输出Time V1 V2 V3 ... V27 V28 Amount Class 0 0.0 -1.359807 -0.072781 2.536347 ... 0.133558 -0.021053 149.62 0 1 0.0 1.191857 0.266151 0.166480 ... -0.008983 0.014724 2.69 0 2 1.0 -1.358354 -1.340163 1.773209 ... -0.055353 -0.059752 378.66 0 3 1.0 -0.966272 -0.185226 1.792993 ... 0.062723 0.061458 123.50 0 4 2.0 -1.158233 0.877737 1.548718 ... 0.219422 0.215153 69.99 0 [5 rows x 31 columns] Class 0 284315 1 492 Name: count, dtype: int64 0.9990168884519505 进程已结束,退出代码02.3.3 重点知识点复盘为什么要标准化贷款金额 Amount 数值很大、跨度广标准化可以消除量纲、加快模型收敛。逻辑回归参数作用C0.01加强正则化防止过拟合max_iter1000解决模型迭代不足、不收敛报错业务重点银行风控不平衡数据中准确率没有意义银行最怕漏判风险用户后续需要重点关注召回率。2.4今日核心总结两个模型对比模型任务类型输出本次实战案例线性回归回归预测连续数值血压预测逻辑回归二分类0/1 类别银行贷款风险判断2.5 数据标准化2.5.1 标准化的重要性在机器学习中数据标准化Normalization是数据预处理的关键步骤特别是当特征具有不同量纲或数值范围差异较大时。标准化可以消除量纲影响使不同特征处于同一数量级加快模型收敛优化算法如梯度下降能更快找到最优解提高模型稳定性防止某些特征因数值过大而主导模型训练改善模型性能特别是对距离敏感的算法如KNN、SVM和基于梯度的算法如逻辑回归、神经网络2.5.2 两种常用标准化方法1. Z-Score 标准化StandardScaler公式x (x - μ) / σ其中x原始特征值μ特征的均值σ特征的标准差x标准化后的值特点处理后数据均值为0标准差为1适合数据近似正态分布的情况Scikit-learn中对应StandardScaler本案例中逻辑回归使用的就是这种方法Python代码示例from sklearn.preprocessing import StandardScaler import numpy as np 示例数据 data np.array([[1000], [2000], [3000], [4000], [5000]]) Z-Score标准化 scaler StandardScaler() scaled_data scaler.fit_transform(data) print(原始数据, data.flatten()) print(标准化后, scaled_data.flatten()) print(均值, scaler.mean_) print(标准差, scaler.scale_)2. Min-Max 标准化MinMaxScaler公式x (x - min) / (max - min)其中x原始特征值min特征的最小值max特征的最大值x标准化后的值范围[0, 1]特点将数据缩放到[0, 1]区间对异常值敏感最大值最小值受异常值影响大Scikit-learn中对应MinMaxScaler适合数据边界明确、需要固定范围的情况Python代码示例from sklearn.preprocessing import MinMaxScaler import numpy as np 示例数据 data np.array([[10], [20], [30], [40], [50]]) Min-Max标准化 scaler MinMaxScaler() scaled_data scaler.fit_transform(data) print(原始数据, data.flatten()) print(标准化后, scaled_data.flatten()) print(数据范围[{}, {}].format(scaler.data_min_, scaler.data_max_))2.5.3 两种方法对比与选择建议对比维度Z-Score标准化Min-Max标准化公式x (x - μ) / σx (x - min) / (max - min)输出范围无固定范围通常[-3, 3][0, 1]对异常值相对稳健非常敏感适用场景数据近似正态分布需要保留原始分布形状需要固定输出范围图像处理像素值神经网络输入层Scikit-learn类StandardScalerMinMaxScaler本案例选择✓ 逻辑回归案例使用× 未使用2.6学习感悟回归是预测数分类是判类别。线性回归适合简单数值拟合逻辑回归是工业界最常用的二分类基线模型。真实业务数据大多不平衡如贷款风控不能只看准确率。掌握了完整机器学习流程数据读取 → 预处理 → 可视化 → 数据集划分 → 建模训练 → 模型评估。
延伸阅读

更多相关文章

2026/9/15 2:17:54

2026实盘交易系统架构演进:从订单路由到风控熔断的工程实践

2026实盘交易系统架构演进:从订单路由到风控熔断的工程实践 引言:实盘系统的工程复杂度远超想象 2026年,随着A股程序化交易监管新规的全面落地,实盘交易系统的工程复杂度呈指数级上升。对于量化开发者而言,一套成熟的…

2026/9/13 22:44:35

单片机C语言预处理指令:从宏定义到条件编译的实战指南

1. 从“裸机”到“智能”:预处理指令为何是单片机的基石如果你刚开始接触单片机编程,尤其是用C语言,可能会觉得那些以“#”开头的行有点神秘。它们不像int a 5;或者while(1)那样直接控制硬件,但几乎每个单片机项目都离不开它们。…

2026/9/9 0:32:13

深入解析PN结正向与反向偏置:从原理到实战应用

1. 从一次“诡异”的电路故障说起去年,我帮一个朋友调试他DIY的音频放大器。电路板焊得整整齐齐,元件也没错,但一通电,预期的声音没出来,反而某个三极管烫得能煎鸡蛋。他一脸困惑:“我明明按照原理图接的&a…

2026/9/15 10:52:19

PHP引擎一共有哪些?

PHP引擎PHP引擎主要是指解析和执行PHP代码的软件。最常见的PHP引擎就是官方的PHP解释器,但随着技术的发展,也出现了一些其他的PHP引擎或加速器,比如:Zend引擎:这是PHP的官方引擎,从PHP 4开始就是默认的引擎…

2026/9/15 10:52:19

MySQL引擎一共有哪些?

MySQL引擎MySQL是一个流行的数据库管理系统,它支持多种存储引擎。存储引擎就是数据库用来处理和存储数据的方式。MySQL中常见的存储引擎有以下几种:InnoDB:这是MySQL的默认存储引擎。它支持事务处理,也就是说,如果你在…

2026/9/15 10:47:19

Vue+WebRTC多人视频会议:信令服务与前端封装实战

简介:面向有一定前端基础、希望快速上手WebRTC多人实时互动的开发者,这份Vue Demo源码以多人互动为场景,围绕WebRTC多对多连接、Socket.IO信令交互和Vue组件化开发,覆盖了从用户加入房间、交换SDP与ICE候选,到建立P2P音…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码