【机器学习基础】机器学习入门核心算法:逻辑回归(Logistic Regression)

news2025/5/31 20:55:36

在这里插入图片描述

机器学习入门核心算法:逻辑回归(Logistic Regression)

  • 一、算法逻辑
      • 1.1 基本概念
      • 1.2 Sigmoid函数
      • 1.3 决策边界
    • 二、算法原理与数学推导
      • 2.1 概率建模
      • 2.2 损失函数推导
      • 2.3 梯度下降优化
      • 2.4 正则化处理
    • 三、模型评估
      • 3.1 常用评估指标
      • 3.2 ROC曲线与AUC
    • 四、应用案例
      • 4.1 金融风控:贷款违约预测
      • 4.2 医疗诊断:乳腺癌检测
    • 五、经典面试题解析
      • 问题1:为什么逻辑回归用交叉熵损失而不用MSE?
      • 问题2:逻辑回归如何处理多分类?
    • 六、最佳实践
      • 6.1 特征工程技巧
      • 6.2 超参数调优
    • 七、总结与展望

一、算法逻辑

1.1 基本概念

逻辑回归(Logistic Regression)是一种广义线性模型,主要用于解决二分类问题(也可扩展至多分类)。其核心思想是通过将线性回归的预测值映射到[0,1]区间,得到样本属于某个类别的概率。

与线性回归的本质区别

  • 线性回归:
    y = w T x + b y = w^Tx + b y=wTx+b
    (直接预测连续值)
  • 逻辑回归:
    p = σ ( w T x + b ) p = \sigma(w^Tx + b) p=σ(wTx+b)
    (预测概率值)

1.2 Sigmoid函数

使用Sigmoid函数实现概率映射
σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+ez1

特性分析

  1. 值域 ( 0 , 1 ) (0,1) (0,1),符合概率定义
  2. 导数易计算
    σ ′ ( z ) = σ ( z ) ( 1 − σ ( z ) ) \sigma'(z) = \sigma(z)(1-\sigma(z)) σ(z)=σ(z)(1σ(z))
  3. 输出对称性
    1 − σ ( z ) = σ ( − z ) 1 - \sigma(z) = \sigma(-z) 1σ(z)=σ(z)

1.3 决策边界

假设取阈值为0.5时的决策规则
y ^ = { 1 if  σ ( w T x ) ≥ 0.5 0 otherwise \hat{y} = \begin{cases} 1 & \text{if } \sigma(w^Tx) \geq 0.5 \\ 0 & \text{otherwise} \end{cases} y^={10if σ(wTx)0.5otherwise

对应的线性决策边界
w T x = 0 w^Tx = 0 wTx=0

二、算法原理与数学推导

2.1 概率建模

正类概率
P ( y = 1 ∣ x ) = 1 1 + e − ( w T x + b ) P(y=1|x) = \frac{1}{1 + e^{-(w^Tx + b)}} P(y=1∣x)=1+e(wTx+b)1

负类概率
P ( y = 0 ∣ x ) = 1 − P ( y = 1 ∣ x ) = e − ( w T x + b ) 1 + e − ( w T x + b ) P(y=0|x) = 1 - P(y=1|x) = \frac{e^{-(w^Tx + b)}}{1 + e^{-(w^Tx + b)}} P(y=0∣x)=1P(y=1∣x)=1+e(wTx+b)e(wTx+b)

2.2 损失函数推导

极大似然估计
L ( w ) = ∏ i = 1 n P ( y i ∣ x i ; w ) = ∏ i = 1 n y ^ i y i ( 1 − y ^ i ) 1 − y i L(w) = \prod_{i=1}^n P(y_i|x_i;w) = \prod_{i=1}^n \hat{y}_i^{y_i}(1-\hat{y}_i)^{1-y_i} L(w)=i=1nP(yixi;w)=i=1ny^iyi(1y^i)1yi

对数似然函数
ℓ ( w ) = ∑ i = 1 n [ y i ln ⁡ y ^ i + ( 1 − y i ) ln ⁡ ( 1 − y ^ i ) ] \ell(w) = \sum_{i=1}^n \left[ y_i \ln \hat{y}_i + (1-y_i)\ln(1-\hat{y}_i) \right] (w)=i=1n[yilny^i+(1yi)ln(1y^i)]

交叉熵损失函数
J ( w ) = − 1 n ∑ i = 1 n [ y i ln ⁡ σ ( w T x i ) + ( 1 − y i ) ln ⁡ ( 1 − σ ( w T x i ) ) ] J(w) = -\frac{1}{n}\sum_{i=1}^n \left[ y_i \ln \sigma(w^Tx_i) + (1-y_i)\ln(1-\sigma(w^Tx_i)) \right] J(w)=n1i=1n[yilnσ(wTxi)+(1yi)ln(1σ(wTxi))]


2.3 梯度下降优化

梯度计算
∂ J ∂ w j = 1 n ∑ i = 1 n ( σ ( w T x i ) − y i ) x i j \frac{\partial J}{\partial w_j} = \frac{1}{n}\sum_{i=1}^n (\sigma(w^Tx_i) - y_i)x_{ij} wjJ=n1i=1n(σ(wTxi)yi)xij

参数更新公式
w j : = w j − α ∂ J ∂ w j w_j := w_j - \alpha \frac{\partial J}{\partial w_j} wj:=wjαwjJ

2.4 正则化处理

正则化类型

类型公式特点
L1 J ( w ) + = λ ∣ w ∣ 1 J(w) += \lambda |w|_1 J(w)+=λw1产生稀疏解
L2 J ( w ) + = λ 2 ∣ w ∣ 2 2 J(w) += \frac{\lambda}{2}|w|_2^2 J(w)+=2λw22平滑权重衰减

三、模型评估

3.1 常用评估指标

指标公式说明
准确率 T P + T N T P + T N + F P + F N \frac{TP+TN}{TP+TN+FP+FN} TP+TN+FP+FNTP+TN总体预测正确率
精确率 T P T P + F P \frac{TP}{TP+FP} TP+FPTP预测为正类的准确率
召回率 T P T P + F N \frac{TP}{TP+FN} TP+FNTP正类样本的覆盖率
F1 Score 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l 2 \cdot \frac{Precision \cdot Recall}{Precision + Recall} 2Precision+RecallPrecisionRecall精确率与召回率调和平均

3.2 ROC曲线与AUC

ROC曲线绘制步骤

  1. 调整分类阈值,计算不同阈值下的TPR和FPR:
    T P R = T P T P + F N , F P R = F P F P + T N TPR = \frac{TP}{TP+FN}, \quad FPR = \frac{FP}{FP+TN} TPR=TP+FNTP,FPR=FP+TNFP
  2. 以FPR为横轴,TPR为纵轴绘制曲线

AUC值意义

  • AUC=0.5:随机猜测
  • AUC=1.0:完美分类器

四、应用案例

4.1 金融风控:贷款违约预测

数据处理流程

# Python代码示例
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler

# 特征标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 模型训练
model = LogisticRegression(penalty='l1', solver='liblinear')
model.fit(X_train, y_train)

模型输出结果

  • AUC: 0.85
  • KS值: 0.42

4.2 医疗诊断:乳腺癌检测

特征重要性分析

特征权重显著性(p值)
细胞核半径2.34<0.001
纹理均匀度-1.560.023
边缘平滑度0.890.142

五、经典面试题解析

问题1:为什么逻辑回归用交叉熵损失而不用MSE?

深度解析

  1. 损失函数曲面特性

    • MSE损失在逻辑回归中非凸,存在多个局部最小值
    • 交叉熵损失是凸函数,保证全局最优解
  2. 梯度更新效率
    ∂ J M S E ∂ w = ( y ^ − y ) y ^ ( 1 − y ^ ) x \frac{\partial J_{MSE}}{\partial w} = (\hat{y} - y)\hat{y}(1-\hat{y})x wJMSE=(y^y)y^(1y^)x

    • 当预测值接近0或1时,梯度趋于0,导致更新缓慢
    • 交叉熵梯度直接为 ( y ^ − y ) x (\hat{y} - y)x (y^y)x,更新速度稳定

问题2:逻辑回归如何处理多分类?

两种实现方式对比

方法公式优缺点
One-vs-Rest (OvR)训练K个二分类器简单但可能类别不平衡
Softmax回归 P ( y = k ) = e w k T x ∑ e w j T x P(y=k) = \frac{e^{w_k^Tx}}{\sum e^{w_j^Tx}} P(y=k)=ewjTxewkTx直接建模多分类

六、最佳实践

6.1 特征工程技巧

  1. 分箱处理
    将连续变量离散化,增强模型鲁棒性
    pd.cut(df['age'], bins=5, labels=False)
    
  2. 交互特征
    通过特征组合捕捉非线性关系
    x 3 = x 1 × x 2 x_3 = x_1 \times x_2 x3=x1×x2

6.2 超参数调优

网格搜索示例

from sklearn.model_selection import GridSearchCV

params = {
    'C': [0.1, 1, 10], 
    'penalty': ['l1', 'l2']
}
grid = GridSearchCV(LogisticRegression(), params, cv=5)
grid.fit(X, y)

七、总结与展望

核心优势

  • 输出概率解释性强
  • 训练效率高(时间复杂度O(n))
  • 可通过正则化防止过拟合

未来方向

  • 与深度学习结合(如神经网络最后一层使用逻辑回归)
  • 在线学习场景下的增量更新

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

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

相关文章

智能仓储落地:机器人如何通过自动化减少仓库操作失误?

仓库作业的速度和准确性至关重要&#xff0c;尤其是在当前对无差错、高效作业的要求达到前所未有的环境下。每一个错误&#xff0c;无论是物品放错位置还是库存差异&#xff0c;都会在供应链中产生连锁反应&#xff0c;造成延误、增加成本&#xff0c;并最终影响客户满意度。 …

[低代码表单生成器设计基础]ElementUI中Layout布局属性Form表单属性详解

Layout 布局 ElementUI 的 Layout 布局系统基于 24 栏栅格设计&#xff0c;提供了灵活的响应式布局能力&#xff0c;适用于各种页面结构的构建。(CSDN) &#x1f4d0; 基础布局结构 ElementUI 的布局由 <el-row>&#xff08;行&#xff09;和 <el-col>&#xff0…

从“被动养老”到“主动健康管理”:平台如何重构代际关系?

在老龄化与数字化交织的背景下&#xff0c;代际关系的重构已成为破解养老难题的关键。 传统家庭养老模式中&#xff0c;代际互动多表现为单向的“赡养-被赡养”关系。 而智慧养老平台的介入&#xff0c;通过技术赋能、资源整合与情感连接&#xff0c;正在推动代际关系向“协作…

贪心算法应用:最大匹配问题详解

Java中的贪心算法应用:最大匹配问题详解 贪心算法是一种在每一步选择中都采取当前状态下最优的选择,从而希望导致结果是全局最优的算法策略。在Java中,贪心算法可以应用于多种问题,其中最大匹配问题是一个经典的应用场景。下面我将从基础概念到具体实现,全面详细地讲解贪…

爬虫IP代理效率优化:策略解析与实战案例

目录 一、代理池效率瓶颈的根源分析 二、六大核心优化策略 策略1&#xff1a;智能IP轮换矩阵 策略2&#xff1a;连接复用优化 策略3&#xff1a;动态指纹伪装 策略4&#xff1a;智能重试机制 三、典型场景实战案例 案例1&#xff1a;电商价格监控系统 案例2&#xff1a…

豆瓣电视剧数据工程实践:从爬虫到智能存储的技术演进(含完整代码)

通过网盘分享的文件&#xff1a;资料 链接: https://pan.baidu.com/s/1siOrGmM4n-m3jv95OCea9g?pwd4jir 提取码: 4jir 1. 引言 1.1 选题背景 在影视内容消费升级背景下&#xff0c;豆瓣电视剧榜单作为国内最具影响力的影视评价体系&#xff0c;其数据价值体现在&#xff1a…

基于微信小程序的漫展系统的设计与实现

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…

基于Web的分布式图集管理系统架构设计与实践

引言&#xff1a;为什么需要分布式图集管理&#xff1f; 在现代Web图形应用中&#xff0c;纹理图集&#xff08;Texture Atlas&#xff09;技术是优化渲染性能的关键手段。传统的图集制作流程通常需要美术人员使用专业工具&#xff08;如TexturePacker&#xff09;离线制作&am…

mysql执行sql语句报错事务锁住

报错情况 1205 - Lock wait timeout exceeded; try restarting transaction先找出长时间运行的事务 SELECT * FROM information_schema.INNODB_TRX ORDER BY trx_started ASC;终止长时间运行的事务 KILL [PROCESS_ID];

Java消息队列应用:Kafka、RabbitMQ选择与优化

Java消息队列应用&#xff1a;Kafka、RabbitMQ选择与优化 在Java应用领域&#xff0c;消息队列是实现异步通信、应用解耦、流量削峰等重要功能的关键组件。Kafka和RabbitMQ作为两种主流的消息队列技术&#xff0c;各有特点和适用场景。本文将深入探讨Kafka和RabbitMQ在Java中的…

零基础设计模式——结构型模式 - 组合模式

第三部分&#xff1a;结构型模式 - 组合模式 (Composite Pattern) 在学习了桥接模式如何分离抽象和实现以应对多维度变化后&#xff0c;我们来探讨组合模式。组合模式允许你将对象组合成树形结构来表现“整体-部分”的层次结构。组合模式使得用户对单个对象和组合对象的使用具…

腾讯云国际站可靠性测试

在数字化转型加速的今天&#xff0c;企业对于云服务的依赖已从“可选”变为“必需”。无论是跨境电商的实时交易&#xff0c;还是跨国企业的数据协同&#xff0c;云服务的可靠性直接决定了业务连续性。作为中国领先的云服务提供商&#xff0c;腾讯云国际站&#xff08;Tencent …

自定义异常小练习

在开始之前,让我们高喊我们的口号&#xff1a; ​​​​​​​ 键盘敲烂,年薪百万&#xff01; 目录 键盘敲烂,年薪百万&#xff01; 异常综合练习&#xff1a; 自定义异常 异常综合练习&#xff1a; 自定义异常&#xff1a; 定义异常类写继承关系空参构造带参构造 自定…

SpringBoot整合MinIO实现文件上传

使用Spring Boot与JSP和MinIO&#xff08;一个开源对象存储系统&#xff0c;兼容Amazon S3&#xff09;进行集成&#xff0c;您可以创建一个Web应用来上传、存储和管理文件。以下是如何将Spring Boot、JSP和MinIO集成的基本步骤&#xff1a; 这个是minio正确启动界面 这个是min…

基于面向对象设计的C++日期推算引擎:精准高效的时间运算实现与运算重载工程化实践

前引&#xff1a; 在软件开发中&#xff0c;时间与日期的处理是基础但极具挑战性的任务。传统的手工日期运算逻辑往往面临闰年规则、月份天数动态变化、时区转换等复杂场景的容错难题&#xff0c;且代码冗余度高、可维护性差。本文将深入探讨如何利用C的面向对象特性与成员函数…

如何把 Microsoft Word 中所有的汉字字体替换为宋体?

Ctrl H &#xff0c;然后&#xff0c;点击更多&#xff0c;勾选使用通配符&#xff0c;查找内容中填入 [一-龥]{1,}&#xff0c; 这是 Word 通配符匹配汉字的经典写法&#xff08;匹配 Unicode 范围内的 CJK 汉字&#xff09;。 然后&#xff0c; “替换为”留空&#xff0c;点…

02. [Python+Golang+PHP]三数之和,多种语言实现最优解demo

一、问题描述&#xff1a;三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中…

倚光科技在二元衍射面加工技术上的革新:引领光学元件制造新方向​

倚光科技二元衍射面加工技术&#xff08;呈现出细腻的光碟反射纹路&#xff09; 在光学元件制造领域&#xff0c;二元衍射面的加工技术一直是行业发展的关键驱动力之一。其精准的光相位调制能力&#xff0c;在诸多前沿光学应用中扮演着不可或缺的角色。然而&#xff0c;长期以来…

驱动开发(2)|鲁班猫rk3568简单GPIO波形操控

上篇文章写了如何下载内核源码、编译源码的详细步骤&#xff0c;以及一个简单的官方demo编译&#xff0c;今天分享一下如何根据板子的引脚写自己控制GPIO进行高低电平反转。 想要控制GPIO之前要学会看自己的引脚分布图&#xff0c;我用的是鲁班猫RK3568&#xff0c;引脚分布图如…

《软件工程》第 3 章 -需求工程概论

在软件工程的开发流程中&#xff0c;需求工程是奠定项目成功基础的关键环节。它专注于获取、分析、定义和管理软件需求&#xff0c;确保开发出的软件能真正满足用户需求。接下来&#xff0c;我们将按照目录内容&#xff0c;结合 Java 代码和实际案例&#xff0c;深入讲解需求工…