2025-04-05 吴恩达机器学习4——逻辑回归(1):基础入门
文章目录
- 1 分类问题
- 1.1 介绍
- 1.2 线性回归与分类
- 1.2 逻辑回归
- 2 逻辑回归
- 2.1 介绍
- 2.2 Sigmoid 函数
- 2.3 逻辑回归模型
- 3 决策边界
- 3.1 概念
- 3.2 线性决策边界
- 3.3 非线性决策边界
- 4 代价函数
- 4.1 不使用平方误差
- 4.2 损失函数
- 4.3 整体代价函数
- 5 梯度下降
- 5.1 参数更新
- 5.2 逻辑回归 vs. 线性回归
1 分类问题
1.1 介绍
-
定义:预测离散的输出值(类别),而非连续数值。
-
二元分类:输出仅有两个可能值(如 0/1、否/是、假/真)。
- 正类(Positive Class):目标类别(如垃圾邮件、恶性肿瘤),标记为 1。
- 负类(Negative Class):非目标类别(如正常邮件、良性肿瘤),标记为 0。
-
示例应用:
- 垃圾邮件检测(是/否)
- 金融欺诈识别(欺诈/正常)
- 肿瘤分类(恶性/良性)
1.2 线性回归与分类
Question:为什么线性回归不适用于分类?
- 解释 1:输出可能超出 [0,1] 范围(如预测值 >1 或 <0),但类别标签只能是 0 或 1。
- 解释 2:添加极端数据点会显著改变拟合直线,导致分类阈值(如 0.5)偏移,影响预测结果。
示例:新增一个大型恶性肿瘤样本后,线性回归的决策边界右移,可能错误分类原有数据。
1.2 逻辑回归
- 核心思想:输出始终限制在 [0,1] 之间,表示概率。
- 名称澄清:虽含“回归”,实为分类算法(历史命名原因)。
- 优势:
- 直接建模概率 P ( y = 1 ∣ x ) P(y=1|x) P(y=1∣x)。
- 避免线性回归的分类缺陷。
决策边界(Decision Boundary)
划分类别的阈值(如 0.5),由模型自动学习。线性回归的决策边界是直线,但可能不稳定。逻辑回归通过非线性函数(如 Sigmoid)生成更鲁棒的边界。
2 逻辑回归
2.1 介绍
- 核心思想:输出始终限制在 [0,1] 之间,表示概率。
- 用途:解决二元分类问题(输出 y ∈ 0 , 1 y ∈ {0,1} y∈0,1)。
- 输出特性:模型输出 f ( x ) f(x) f(x) 表示 P ( y = 1 ∣ x ) P(y=1|x) P(y=1∣x)(即 y = 1 y=1 y=1 的概率),范围严格在 [0,1] 之间。
示例:肿瘤大小为 x x x 时, f ( x ) = 0.7 f(x)=0.7 f(x)=0.7 表示恶性肿瘤概率为 70%,良性概率为 30%(因为 P ( y = 0 ∣ x ) = 1 − P ( y = 1 ∣ x ) ) P(y=0|x) = 1 - P(y=1|x)) P(y=0∣x)=1−P(y=1∣x))。
名称澄清
逻辑回归虽含“回归”,不是回归,而是分类算法(历史命名原因)。
核心是通过 Sigmoid 函数实现概率建模。
2.2 Sigmoid 函数
Sigmoid 函数:
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+e−z1
- z z z 为线性函数: z = w ⋅ x + b z = w·x + b z=w⋅x+b( w w w:权重, b b b:偏置)。
- e e e 是自然常数(≈ 2.718), e − z e^{-z} e−z 随 z z z 增大趋近于 0。
函数特性:
- 当 z → + ∞ z → +∞ z→+∞, g ( z ) → 1 g(z) → 1 g(z)→1;当 z → − ∞ z → -∞ z→−∞, g ( z ) → 0 g(z) → 0 g(z)→0。
- z = 0 z=0 z=0 时, g ( z ) = 0.5 g(z)=0.5 g(z)=0.5(对称中心点)。
- S S S 形曲线:平滑过渡,适合概率建模。
2.3 逻辑回归模型
模型定义:
f ( x ) = g ( w ⋅ x + b ) = 1 1 + e − ( w ⋅ x + b ) f(x)=g(w\cdot x+b)=\frac{1}{1+e^{-(w\cdot x+b)}} f(x)=g(w⋅x+b)=1+e−(w⋅x+b)1
输入 x x x(如肿瘤大小),输出 f ( x ) f(x) f(x) 为 y = 1 y=1 y=1 的概率。
参数意义:
- w w w 控制曲线陡峭度(斜率)。
- b b b 控制曲线左右平移(阈值偏移)。
符号解释:
f ( x ; w , b ) = P ( y = 1 ∣ x ; w , b ) f(x;w,b)=P(y=1∣x;w,b) f(x;w,b)=P(y=1∣x;w,b)
- 分号 ; 表示 w , b w,b w,b 是模型参数。
- x x x 是输入特征。
3 决策边界
3.1 概念
-
定义:将特征空间划分为不同预测类别的分界线(如 ŷ=0 和 ŷ=1 的区域)。
-
数学条件:
- 预测 ŷ=1 当且仅当 z = w·x + b ≥ 0(即 f(x) = g(z) ≥ 0.5)。
- 预测 ŷ=0 当 z < 0(f(x) < 0.5)。
-
关键点:决策边界是 z = 0 的等高线(如直线、曲线等)。
3.2 线性决策边界
示例:二特征模型( x 1 , x 2 x_1, x_2 x1,x2)
参数: w 1 = 1 , w 2 = 1 , b = − 3 w_1=1, w_2=1, b=-3 w1=1,w2=1,b=−3 -> z = x 1 + x 2 − 3 z = x_1 + x_2 - 3 z=x1+x2−3
- 决策边界方程: x 1 + x 2 = 3 x_1 + x_2 = 3 x1+x2=3(一条直线)
- 预测规则:
- 直线右侧( x 1 + x 2 ≥ 3 x_1 + x_2 ≥ 3 x1+x2≥3)
->y ^ = 1 ŷ=1 y^=1 - 直线左侧( x 1 + x 2 < 3 x_1 + x_2 < 3 x1+x2<3)
->y ^ = 0 ŷ=0 y^=0
- 直线右侧( x 1 + x 2 ≥ 3 x_1 + x_2 ≥ 3 x1+x2≥3)
3.3 非线性决策边界
多项式特征:通过高阶项实现复杂边界(如圆形、椭圆等)。
示例 1(圆形边界)
z = x 1 2 + x 2 2 − 1 z = x_1^2 + x_2^2 - 1 z=x12+x22−1 -> 决策边界为 x 1 2 + x 2 2 = 1 x_1^2 + x_2^2 = 1 x12+x22=1(单位圆)。
- 圆外: y ^ = 1 ŷ=1 y^=1;
- 圆内: y ^ = 0 ŷ=0 y^=0。
示例 2(复杂边界)
引入交叉项和高阶项(如 x 1 x 2 , x 1 2 , x 2 2 x_1x_2, x_1^2, x_2^2 x1x2,x12,x22)可生成椭圆、双曲线等形状。
4 代价函数
4.1 不使用平方误差
线性回归代价函数为
J ( w , b ) = 1 2 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) 2 J(w,b) = \frac{1}{2m}\sum_{i=1}^m (f_{w,b}(x^{(i)}) - y^{(i)})^2 J(w,b)=2m1i=1∑m(fw,b(x(i))−y(i))2
逻辑回归直接套用,会面临的问题:
- 由于 Sigmoid 非线性变换,代价函数变为非凸函数。
- 梯度下降易陷入局部极小值。
4.2 损失函数
损失函数(Loss Function)定义如下
L ( f w , b ( x ) , y ) = { − log ( f w , b ( x ) ) i f y = 1 − log ( 1 − f w , b ( x ) ) i f y = 0 L(f_{w,b}(x), y) = \begin{cases} -\log(f_{w,b}(x)) & if \ \ y=1 \\ -\log(1 - f_{w,b}(x)) & if \ \ y=0 \end{cases} L(fw,b(x),y)={−log(fw,b(x))−log(1−fw,b(x))if y=1if y=0
-
当 y = 1 y=1 y=1 时:
- 预测值 f ( x ) → 1 f(x)→1 f(x)→1:损失 → 0 →0 →0(正确)
- 预测值 f ( x ) → 0 f(x)→0 f(x)→0:损失 → + ∞ →+∞ →+∞(严重惩罚)
示例:预测恶性肿瘤概率为 0.1(实际为1)时损失极高。
-
当 y = 0 y=0 y=0 时:
- 预测值 f ( x ) → 0 f(x)→0 f(x)→0:损失 → 0 →0 →0
- 预测值 f ( x ) → 1 f(x)→1 f(x)→1:损失 → + ∞ →+∞ →+∞
合并形式
L ( f w , b ( x ) , y ) = − y log ( f w , b ( x ) ) − ( 1 − y ) log ( 1 − f w , b ( x ) ) L(f_{w,b}(x), y) = -y\log(f_{w,b}(x)) - (1-y)\log(1-f_{w,b}(x)) L(fw,b(x),y)=−ylog(fw,b(x))−(1−y)log(1−fw,b(x))
- 当 y = 1 y=1 y=1:第二项消失,保留第一项 − log ( f ( x ) ) −\log(f(x)) −log(f(x))
- 当 y = 0 y=0 y=0:第一项消失,保留第二项 − log ( 1 − f ( x ) ) −\log(1−f(x)) −log(1−f(x))
4.3 整体代价函数
代价函数(Cost Function)是损失函数的平均值:
J ( w , b ) = − 1 m ∑ i = 1 m [ y ( i ) log ( f w , b ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − f w , b ( x ( i ) ) ) ] J(w,b) = -\frac{1}{m}\sum_{i=1}^m \left[ y^{(i)}\log(f_{w,b}(x^{(i)})) + (1-y^{(i)})\log(1-f_{w,b}(x^{(i)})) \right] J(w,b)=−m1i=1∑m[y(i)log(fw,b(x(i)))+(1−y(i))log(1−fw,b(x(i)))]

特性
- 凸函数:保证梯度下降收敛到全局最优。
- 概率解释:本质是极大似然估计的负对数形式。
- 数学性质:
- 当 y = 1 y=1 y=1: J → 0 J→0 J→0 当且仅当 f ( x ) → 1 f(x)→1 f(x)→1。
- 当 y = 0 y=0 y=0: J → 0 J→0 J→0 当且仅当 f ( x ) → 0 f(x)→0 f(x)→0。
5 梯度下降
目标:找到参数 w w w 和 b b b,使得成本函数 J ( w , b ) J(w, b) J(w,b) 最小化。
通过梯度下降法迭代更新参数。
5.1 参数更新
更新规则如下:
w j : = w j − α ∂ ∂ w j J ( w , b ) b : = b − α ∂ ∂ b J ( w , b ) \begin{aligned} w_j &:= w_j - \alpha \frac{\partial }{\partial w_j}J(w,b) \\ b &:= b - \alpha \frac{\partial }{\partial b}J(w,b) \end{aligned} wjb:=wj−α∂wj∂J(w,b):=b−α∂b∂J(w,b)
将 J ( w , b ) J(w, b) J(w,b) 带入得到:
w j : = w j − α [ 1 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) x j ( i ) ] b : = b − α [ 1 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) ] \begin{aligned} w_j &:= w_j - \alpha \left[\frac1m\sum_{i=1}^m(f_{w,b}(x^{(i)})-y^{(i)})x_j^{(i)}\right] \\ b &:= b - \alpha \left[\frac1m\sum_{i=1}^m(f_{w,b}(x^{(i)})-y^{(i)})\right] \end{aligned} wjb:=wj−α[m1i=1∑m(fw,b(x(i))−y(i))xj(i)]:=b−α[m1i=1∑m(fw,b(x(i))−y(i))]
先计算所有参数的更新值,再同时更新所有参数。
5.2 逻辑回归 vs. 线性回归
| 线性回归 | 逻辑回归 | |
|---|---|---|
| 预测函数 f ( x ) f(x) f(x) | w ⋅ x + b w\cdot x+b w⋅x+b | Sigmoid ( w ⋅ x + b ) \text{Sigmoid}(w\cdot x+b) Sigmoid(w⋅x+b) |
| 成本函数 | 均方误差 | 对数损失 (凸函数) |
| 梯度下降公式 | 形式相同 | 形式相同但 f ( x ) f(x) f(x)不同 |

相关文章:
2025-04-05 吴恩达机器学习4——逻辑回归(1):基础入门
文章目录 1 分类问题1.1 介绍1.2 线性回归与分类1.2 逻辑回归 2 逻辑回归2.1 介绍2.2 Sigmoid 函数2.3 逻辑回归模型 3 决策边界3.1 概念3.2 线性决策边界3.3 非线性决策边界 4 代价函数4.1 不使用平方误差4.2 损失函数4.3 整体代价函数 5 梯度下降5.1 参数更新5.2 逻辑回归 vs…...
P1125 [NOIP 2008 提高组] 笨小猴
#include<bits/stdc.h> using namespace std; int a[300],ma,mi105;//数组用来记录每个字符出现的次数,将mi初始为一个比较大的值 bool is_prime(int x){if(x0||x1)return false;for(int i2;i*i<x;i){if(x%i0)return false;}return true; }//判断是否为质…...
Linux systemd 服务全面详解
一、systemd 是什么? systemd 是 Linux 系统的现代初始化系统(init)和服务管理器,替代传统的 SysVinit 和 Upstart。它不仅是系统启动的“总指挥”,还统一管理服务、日志、设备挂载、定时任务等。 核心作用 服务管理…...
SortedSet结构之用户积分实时榜单实战
Redis 中的SortedSet结构非常适合用于实现实时榜单的场景,它根据成员的分数自动进行排序,支持高效的添加、更新和查询操作。 SortedSet实时榜单的一些典型应用场景: 游戏中的玩家排行榜:在多人在线游戏中,使用 Sorte…...
C++_类和对象(中)
【本节目标】 类的6个默认成员函数构造函数析构函数拷贝构造函数赋值运算符重载const成员函数取地址及const取地址操作符重载 1. 类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什…...
#SVA语法滴水穿石# (007)关于 $past 的用法
今天,我们要学习比较重要的一个关键字。$past 的用法,今天系统学习。 1. $past 函数的核心作用 $past 用于 获取某个信号在过去指定时钟周期前的值,通常用于检查历史状态是否符合预期。 其语法如下: $past(signal, [num_cycles], [gating_condition], [clock], [reset])…...
学习笔记—C++—入门基础()
目录 C介绍 参考文档 C第一个程序 命名空间namespace namespace的价值 namespace的定义 namespace使用 指定命名空间访问 using将命名空间中某个成员展开 展开命名空间中全部成员 输入和输出 缺省参数 函数重载 引用 引用的概念 应用 const引用 指针和引用的关…...
kotlin函数类型
一 函数类型定义 1 定义 函数类型就是 (Int, Int) -> Int 函数类型其实就是将函数的 “参数类型” 和 “返回值类型” 抽象出来 2 示例 : (Int, Int) -> Int 表示接收两个 Int 参数并返回 Int 的函数类型; (String) -> Unit 表示接收 Strin…...
大数据Spark(五十七):Spark运行架构与MapReduce区别
文章目录 Spark运行架构与MapReduce区别 一、Spark运行架构 二、Spark与MapReduce区别 Spark运行架构与MapReduce区别 一、Spark运行架构 Master:Spark集群中资源管理主节点,负责管理Worker节点。Worker:Spark集群中资源管理的从节点,负责任务的运行…...
虚拟Ashx页面,在WEB.CONFIG中不添加handlers如何运行
https://localhost:44311/webapi.ashx 虚拟ASHX页面,在WEB.CONFIG中添加handlers,如何不添加节点,直接运行?把页面直接保存ASHX名称?现在是.VB 如果你不想通过在 web.config 里添加 handlers 节点来配置处理程序,而是直接让 .as…...
道路裂缝数据集CrackForest-156-labelme
来源于开源的数据集 https://github.com/cuilimeng/CrackForest-dataset 进行整理修改而成。 文章目录 1. 介绍2. 应用场景3. 相关工具4. 下载地址 1. 介绍 在现代城市管理中,道路状况的监测与维护是确保交通安全和城市基础设施健康的重要环节。 CrackForest是一个…...
HTML 表单:构建交互式网页的关键元素
HTML 表单:构建交互式网页的关键元素 引言 HTML表单是构建交互式网页的核心组件之一,它允许用户与网站进行交互,提交信息、填写问卷或进行其他操作。本文将深入探讨HTML表单的基础知识、常用元素、表单验证以及如何优化表单设计,以提高用户体验和网站的可访问性。 HTML表…...
Java进阶-day06:反射、注解与动态代理深度解析
目录 一、反射机制:Java的自我认知能力 1.1 认识反射 1.2 获取Class对象 1.3 获取类的成分 二、注解:Java的元数据机制 2.1 注解概述 2.2 元注解 2.3 注解解析 2.4 注解的实际应用 三、动态代理:灵活的间接访问机制 3.1 为什么需要…...
Redis数据结构之Hash
目录 1.概述2.常见操作2.1 H(M)SET/H(M)GET2.2 HGETALL2.3 HDEL2.4 HLEN2.5 HEXISTS2.6 HKEYS/HVALS2.7 HINCRBY2.8 HSETNX 3.总结 1.概述 Hash是一个String类型的field(字段)和value(值)的映射表,而且value是一个键值对集合,类似Map<String, Map<…...
故障矩阵像素照片效果ps标题文本特效滤镜样机 Glitched Arcade Text Logo Effect
有时,视觉效果比文字本身更能讲述故事,因此请确保您已竭尽全力提供令人敬畏的展示。品牌标识或演示元素,该资产可以处理您的项目所涉及的任何内容。由于智能对象图层,此文本效果将为获得理想的结果铺平道路。这些允许您在指定的图…...
[创业之路-352]:从创业和公司经营的角度看:分析美国的三大财务报表
一、美国政府的财务报表 如果把美国政府看成一个公司,从三大财务报表上看,美国政府资产雄厚,但利润表年年亏损,现金流量表年年为负,现金流持续吃紧,面临现金流断裂导致公司倒闭的风险。 马斯克在降低公司各…...
【学Rust写CAD】27 双线性插值函数(bilinear_interpolation.rs)
源码 use super::constant::BILINEAR_INTERPOLATION_BITS; // Inspired by Filter_32_opaque from Skia. fn bilinear_interpolation(tl: u32,tr: u32,bl: u32,br: u32,mut distx: u32,mut disty: u32, ) -> u32 {let distxy;let distxiy;let distixy;let distixiy;let mut…...
vs环境中编译osg以及osgQt
1、下载 OpenSceneGraph 获取源代码 您可以通过以下方式获取 OSG 源代码: 官网下载:https://github.com/openscenegraph/OpenSceneGraph/releases 使用 git 克隆: git clone https://github.com/openscenegraph/OpenSceneGraph.git 2、下载必要的第三方依赖库 依赖库 ht…...
【教学类-102-02】自制剪纸图案(留白边、沿线剪)02——Python+PS自动化添加虚线边框
背景需求: 01版本实现了对透明背景png图案边界线的扩展,黑线实线描边 【教学类-102-01】自制剪纸图案(留白边、沿线剪)01-CSDN博客文章浏览阅读974次,点赞15次,收藏7次。【教学类-102-01】自制剪纸图案(留白边、沿线剪)01https://blog.csdn.net/reasonsummer/article…...
基于 Netty 框架的 Java TCP 服务器端实现,用于启动一个 TCP 服务器来处理客户端的连接和数据传输
代码: package com.example.tpson_tcp;import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; imp…...
fbx bip互转 测试OK
目录 fbx bip互转 3dmax插件fbx转bip: 测试可以转: MotionBuilder fbx转bip fbx bip互转 3dmax插件fbx转bip: 测试可以转: 不用插件!!无脑把Mxiamo转bip骨骼动画 - CG软件插件脚本交流 - Powered by Discuz!...
iptables只允许指定网段的ip访问某端口配置
yum install -y iptables-services #安装 systemctl restart iptables.service #重启防火墙使配置生效 systemctl enable iptables.service #设置防火墙开机启动 systemctl disable iptables.service #禁止防火墙开机启动 iptables -F 清除所有链的规则。 关闭所有访问端口 …...
OFP--2018
文章目录 AbstractIntroductionRelated Work2D object detection3D object detection from LiDAR3D object detection from imagesIntegral images 3D Object Detection ArchitectureFeature extractionOrthographic feature transformFast average pooling with integral imag…...
libevent DNS开发
一、DNS功能 Libevent的DNS功能提供异步解析与服务器搭建能力,其核心设计分为阻塞式解析与事件驱动异步解析两套机制。 阻塞式解析(同步) 功能定位 通过evutil_getaddrinfo()提供可移植的阻塞式域名解析,兼容无标准getaddrinfo()接口的系统(如旧版…...
CentOS-查询实时报错日志-查询前1天业务报错gz压缩日志
最新版本更新 https://code.jiangjiesheng.cn/article/364?fromcsdn 推荐 《高并发 & 微服务 & 性能调优实战案例100讲 源码下载》 1. 查询实时报错日志 物理路径(带*的放在靠后,或者不用*) cd /home/logs/java-gz-log-dir &am…...
ETF 场内基金是什么?佣金最低又是多少呢?
嘿,朋友们,大家好啊,我是StockMasterX,今天咱们就坐下来慢慢聊聊这个话题,ETF 场内基金到底是个啥东西,它的佣金最低能到多少,真的是个值得深挖的问题。 说起ETF,我还记得刚入行那会…...
[论文阅读]PMC-LLaMA: Towards Building Open-source Language Models for Medicine
PMC-LLaMA:构建医学开源语言模型 摘要 最近,大语言模型在自然语言理解方面展现了非凡的能力。尽管在日常交流和问答场景下表现很好,但是由于缺乏特定领域的知识,这些模型在需要精确度的领域经常表现不佳,例如医学应用…...
26考研——线性表(2)
408答疑 文章目录 一、线性表的定义和基本操作二、线性表的顺序表示三、 线性表的链式表示四、 顺序表和链表的比较五、参考资料鲍鱼科技课件26王道考研书 六、总结顺序表总结顺序表特点深入掌握顺序表的管理方式 单链表总结双循环链表总结 一、线性表的定义和基本操作 文章链…...
写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码?
VB.NET 写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码? 分享 1. 在 VB.NET 中指定运行 Sub Main 在 VB.NET 里,你能够指定 Sub Main 作为程序的入口点。下面为你介绍两种实现方式: 方式一:在项目属性…...
低代码开发平台:飞帆画 echarts 柱状图
https://fvi.cn/711 柱状图这个控件是由折线图的控件改过来的,在配置中,单选框选择柱状图就行了。...
