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

吴恩达机器学习笔记复盘(九)逻辑回归模型概述

简介

逻辑回归(Logistic Regression)是一种用于解决分类问题的统计学习方法,尤其适用于二分类任务。尽管名称中包含“回归”,但它实际上是一种分类模型。

核心思想 

逻辑回归的核心是通过逻辑函数(sigmoid函数)将线性回归的输出转换为概率值,从而实现分类。

步骤如下

线性回归基础

假设特征与目标之间存在线性关系,即 z = \theta^T x,其中 \theta是参数向量,x是特征向量。

概率转换

使用sigmoid函数将线性输出 z映射到概率 p \in [0, 1],公式为:p = h_\theta(x) = \frac{1}{1 + e^{-z}} = \frac{1}{1 + e^{-\theta^T x}}

分类决策

设定阈值(通常为0.5,其实随便了,你也可以设定成0.8,会得到不同结果罢了-_-!),若 p \geq 0.5则预测为正类(1),否则为负类(0)。

数学原理

假设函数

 逻辑回归的假设函数为:h_\theta(x) = \frac{1}{1 + e^{-\theta^T x}}

- 当 \theta^T x很大时,h_\theta(x) \approx 1(正类)。

- 当 \theta^T x很小时,h_\theta(x) \approx 0(负类)。

损失函数

 -逻辑回归使用对数损失函数(交叉熵损失),公式为:J(\theta) = -\frac{1}{m} \sum_{i=1}^m \left[ y^{(i)} \log h_\theta(x^{(i)}) + (1 - y^{(i)}) \log (1 - h_\theta(x^{(i)})) \right]

- \( y^{(i)} \) 是样本真实标签(0或1)。

- 损失函数通过最大化似然估计推导而来,确保模型预测概率与真实标签的一致性。

优化方法

 - 梯度下降:通过迭代更新参数 \theta,公式为: \theta_j := \theta_j - \alpha \cdot \frac{1}{m} \sum_{i=1}^m (h_\theta(x^{(i)}) - y^{(i)}) x_j^{(i)}其中 \alpha是学习率,x_j^{(i)} 是第 i个样本的第 j个特征。

- 牛顿法/拟牛顿法:收敛速度更快,但计算复杂度较高。(略)

应用场景

 逻辑回归广泛应用于以下领域:

1. 二分类问题:如垃圾邮件识别、疾病诊断、用户流失预测。

2. 概率预测:例如计算用户点击广告的概率。

3. 可解释性需求:通过参数 \theta分析特征对结果的影响方向和强度。

优缺点 

优点

- 简单高效:模型训练速度快,计算资源消耗低。

- 可解释性强:参数直接反映特征的重要性。

- 概率输出:提供分类的置信度。

缺点 

- 线性假设:对非线性数据拟合能力有限,需通过特征工程(如多项式特征)增强表达能力。

- 易欠拟合:复杂数据集可能需要正则化(如L1/L2正则)避免过拟合。

- 类别不平衡:需通过调整阈值或样本权重解决。

扩展问题

多分类逻辑回归

 若需处理多分类问题(如手写数字识别),可采用以下方法:

1. 一对多(One-vs-Rest):为每个类别训练一个二分类器,预测时选择概率最大的类别。

2. Softmax回归:直接扩展逻辑回归到多分类,使用Softmax函数替代sigmoid函数。

总结

逻辑回归是一种经典的分类模型,其核心在于将线性回归与概率转换结合,适用于二分类和可解释性要求高的场景。尽管存在一定局限性,但其简单性和高效性使其成为实际应用中的常用工具。

笔者注

关于假设函数 h_\theta(x) = \frac{1}{1 + e^{-\theta^T x}}课里并没有给出推导过程,只是简要提了一下。

构建逻辑回归算法需引入sigmoid函数(也称逻辑函数),其公式为

G(Z)=1/(1 + e^{-Z})e约为2.7)。当Z很大时,G(Z)接近1;Z为很大负数时,G(Z)接近0;Z = 0时,G(Z)=0.5。 

第一步定义类似线性回归的直线函数WX + B,记为Z;第二步将Z传入逻辑函数G,得到逻辑回归模型F(X)=G(WX + B)=G(Z)=1/(1 + e^{-Z}),该模型输入特征\(X\),输出0到1之间的数字。

-------

但是实际上这个函数是非常重要的基础工具函数,涉及概率论的基础,所以给出推导过程便于理解逻辑回归模型的本质。

1. 逻辑回归的目标

逻辑回归用于二分类问题,假设输入特征为 x,输出标签为 y \in \{0, 1\}。我们希望找到一个函数h_\theta(x),将线性组合 \theta^T x 映射到概率 P(y=1|x),即: h_\theta(x) = P(y=1|x; \theta)

2. 对数几率函数(Logit Function)

 为了将线性模型与概率关联,引入对数几率(log-odds):

\ln\left( \frac{P(y=1|x)}{1 - P(y=1|x)} \right) = \theta^T x

该式左边是事件发生概率与不发生概率的比值的对数,右边是线性模型。通过变形可得到概率表达式。

3.推导sigmoid函数

 对对数几率公式两边取指数:

\frac{P(y=1|x)}{1 - P(y=1|x)} = e^{\theta^T x}

解出 P(y=1|x)

P(y=1|x) = \frac{e^{\theta^T x}}{1 + e^{\theta^T x}} = \frac{1}{1 + e^{-\theta^T x}}

记为 g(z),其中 z = \theta^T xg(z) = \frac{1}{1 + e^{-z}}

4. 函数特性

输出范围:g(z) \in (0, 1),适合表示概率。

- 对称性:g(-z) = 1 - g(z),反映正负样本的对称性。

- 导数性质:导数可表示为 g'(z) = g(z)(1 - g(z)),简化梯度计算。

5. 几何意义 

sigmoid函数将线性模型的输出 \theta^T x转换为概率值。当\theta^T x > 0时,P(y=1|x) > 0.5,模型预测为正类;反之则为负类。 

一句话比较的话,线性回归是用函数方程找出最小平均误差,而逻辑回归是先设定一个界线概率,然后根据这个界限算出正负(用人的概念就是归类)。

相关文章:

  • 人工智能 - 在 Spring Boot 中调用 AnythingLLM+DeepSeek 的知识库获取消息接口
  • 大模型开发(六):LoRA项目——新媒体评论智能分类与信息抽取系统
  • 『 C++ 』多线程同步:条件变量及其接口的应用实践
  • 17.Linux蓝牙串口相关协议与使用步骤
  • GGUF 和 llama.cpp 是什么关系
  • 【记一次】AI微调训练步数计算方式
  • 在使用 RabbitMQ 时,手动确认消息和死信队列
  • 告别命令行,我用图形界面畅玩 DeepSeek-R1 1.5B
  • Redis为什么用跳表实现有序集合?
  • 深入解析 Uniswap:自动做市商模型的数学推导与智能合约架构
  • vue有几个版本
  • 【IDEA】IDEA常用快捷键(适应包括xml所有类型文件)
  • Redis 知识点梳理
  • 宠物AI识别技术颠覆自助洗宠场景,解决4大难题
  • systemd-networkd 的 /etc/systemd/network/*.network 的配置属性名称是不是严格区分大小写?是
  • 设计模式之装饰器模式
  • 项目日记 -云备份 -服务器配置信息模块
  • 区块链项目价值跃迁:从技术叙事到资本共振的包装艺术
  • 【Text2reward】环境状态信息学习笔记
  • python __name__与__main__深刻理解(涵详细解释、应用场景、代码举例、高级用法)
  • “上海之帆”巡展在日本大阪开幕,松江区组织企业集体出展
  • 国家主席习近平同普京总统举行大范围会谈
  • 不主动上门检查,上海已制定14个细分领域“企业白名单”甄别规则
  • “救护车”转运病人半路加价,从宝鸡到西安往返都要多收钱
  • 谢晖不再担任中超长春亚泰队主教练:战绩不佳主动请辞
  • 欧盟公布终止进口俄能源计划,2027年为最后期限