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

机器学习week3-分类、正则化

1. 逻辑回归

1.1. 线性回归 vs 逻辑回归

对比维度

线性回归

逻辑回归

任务类型

回归(预测连续值)

分类(预测离散类别)

输出范围

(−∞,+∞)

[0,1](概率值)

损失函数

均方误差(MSE)

对数损失(交叉熵损失)

假设条件

假设输出与特征呈线性关系

假设概率的对数几率与特征呈线性关系

1.2. 场景:肿瘤分类

  • X轴:肿瘤大小;Y轴:0-良性,-恶性
  • 决策边界(decision boundary:由线性函数 (f_{w,b}(x) = wx + b) 定义,用于划分两个类别
    • 决策边界及左边:0-良性,右边:1-恶性

在右边添加额外训练样本(肿瘤很大的样本)会导致线性函数发生偏移

  • (蓝)线性函数变成(绿)线性函数;
  • 决策边界也右移
    • 原本为恶性的肿瘤样本预测为0-良性
    • 显然错误,右边的样本不应该影响怎么分类良恶性的
    • 添加新的样本,线性函数更差

1.3. 逻辑函数

Logistic Function,也称为 Sigmoid 函数,S 形曲线函数。它将任意实数输入值映射到区间 (0, 1)。

g(x) =1/(1 + e^(-x))

  • e 是自然常数(约等于 2.71828)

1.4. 构建逻辑回归算法

输入一个特征/一组特征x,输出一个(0,1)间的数字

  1. 定义z值:z= wx + b
  2. z值作为输入,带入到逻辑函数 g(z) =1/(1 + e^(-z)) 中
  3. 得到逻辑回归模型 f(x)=g(wx+b)

输出的理解:对于给定输入x值时,类别y=1的概率

  • 肿瘤大小为x时,肿瘤为恶性的概率

2. 决策边界

z= wx + b ----> g(z) =1/(1 + e^(-z)) ------> f(x)=g(wx+b)

  1. f(x)>0.5时,表分类=1概率>0.5,分类=1;否则f(x)<0.5时,表分类=1概率<0.5,分类=0
  2. f(x)>0.5时,根据逻辑函数曲线图,z>0,z=wx+b
  3. wx+b>0时,z>0,f(x)>0.5,分类=1;wx+b<0时,z<0,f(x)<0.5,分类=0
  4. 决策边界:wx+b=0的线

有两个输入特征:x1、x2

  • z=w1x1+w2x2+b
  • f(x)=g(w1x1+w2x2+b)
  • 决策边界:w1x1+w2x2+b=0

令w1=w2=1,b=-3

  • z=x1+x2-3
  • 决策边界:x1+x2=3

决策边界非直线

  • 多项式特征:z=w1x1^2+w2x2^2+b
  • 假设w1=w2=1,b=-1;z=x1^2+x2^2-1
  • 决策边界:x1^2+x2^2=1
    • 圆外:z>0,f(z)>0.5,分类y=1
    • 圆内:z<0,f(z)<0.5,分类y=0

更复杂的决策边界

3. 逻辑回归的代价函数

代价函数提供一种衡量特定参数集对训练数据拟合程度的方法,帮助选择更好的参数

对比维度

损失函数(Loss Function)

代价函数(Cost Function)

作用对象

单个训练样本

整个训练数据集

数学关系

代价函数是损失函数的平均值

由损失函数累加并平均得到

优化目标

无直接优化意义

模型训练的目标是最小化代价函数

应用场景

理论分析、梯度计算

实际训练、评估模型整体性能

平方误差代价函数(1/2在求和符号外面时)

  • 得到非凸代价函数:使用梯度下降,会有很多局部最小值

损失函数:单个训练的损失

  • y^(i)真实值,f(x^(i))预测值
  • 横轴:f,即标签y=1的概率预测值;纵轴:L,即损失函数

当 y^(i) = 1 时的损失函数曲线:

  • 当 f(x^(i))->1(预测正确),损失 L -> 0;
  • 当 f(x^(i))->0(预测错误),损失 L -> +∞

当 y^(i) = 0 时的损失函数曲线:

  • 当 f(x^(i))->0(预测正确),损失 L -> 0;
  • 当 f(x^(i))->1(预测错误),损失 L -> +∞

代价函数

4. 逻辑回归的简化版代价函数

5. 梯度下降的实现

如何选择w1、w2、w3、...、b的值使代价函数值尽可能小

对于repeat,先计算两个式子的右侧,再同时更新到左侧

  • 线性回归:预测函数为 f(x) = wx + b
  • 逻辑回归:预测函数为 f(x) = 1/(1 + e^(-(wx + b)))(sigmoid 函数)

更新公式形式与线性回归的相同,但f(x)定义不同

  1. 监督梯度下降
  2. 向量化
  3. 特征缩放

6. 过拟合问题

过拟合(Overfitting):模型在训练数据上表现良好,但在新的、未见过的数据上表现不佳,高方差(High Variance)

欠拟合(Underfitting):模型的复杂度较低,无法捕捉到数据中的关键特征和潜在规律,模型在训练、测试数据上的表现都很差,高偏差(High Bias)

泛化(Generalization) 是指模型在未见过的新数据上表现良好的能力。

过拟合也适用于分类

7. 解决过拟合

  1. 获得更多数据
  2. 尝试选择、使用特征的子集
  3. 正则化减小参数大小🔺

8. 带正则化的成本函数

模型过拟合的本质是参数值过大(如高次多项式的系数),导致模型对训练数据的微小波动过度敏感。正则化通过在代价函数中引入参数惩罚项,迫使参数值 “收缩” 到较小范围,从而:

  • 降低模型复杂度(避免过度复杂的决策边界);
  • 增强模型对新数据的泛化能力。

正则化:对特征的参数w_j惩罚,对b不操作

  1. L2正则化:温和收缩参数,保留所有特征
    1. 所有参数 w_j 都会被 “拉向 0”,但不会严格为 0(系数值变小但非零)。
    2. 倾向于让参数值更平均(避免某一特征权重过大),使模型更 “平滑”。
  2. L1正则化:稀疏化参数,实现自动特征选择
    1. 部分参数 w_j 会被直接压缩至 0(“稀疏化”),相当于自动实现 “特征选择”。
    2. 能筛选出对目标影响最大的核心特征,剔除冗余特征。

正则化参数 ⋋

  • =0:无正则化,模型可能过拟合(完全拟合训练数据)。
  • 非常大:正则化权重大,所有参数 w1...wj 被压缩至 0,模型复杂度降低 f(x)~=b(可能欠拟合)。
  • 选择原则:通过交叉验证(如网格搜索)找到最优 ⋋,使验证集上的模型性能(如准确率、损失值)最优。

9. 正则化线性回归

和线性回归相比,repeat部分对 b 的更新没变化,符合正则化试图缩小参数 wi ,不改变 b

正则化在每次迭代的作用:更新wj时,先✖一个略小于1的数,稍微缩小wj值,再减去

  • 第一部分:w_j*(1-ɑ*⋋/m) 是正则化项,确保权重不会无限制增长。
  • 第二部分:是标准的梯度下降更新项,用于最小化预测误差。

10. 正则化逻辑回归

对于梯度下降迭代最小化代价函数,repeat和正则化线性回归相同,只是各自的 f(x) 函数表达式不同

http://www.lryc.cn/news/595400.html

相关文章:

  • 在翻译语义相似度和会议摘要相似度评估任务中 ,分类任务 回归任务 生成任务区别
  • 141 个 LangChain4j Maven 组件分类解析、多场景实战攻略
  • Sklearn 机器学习 IRIS数据 理解分类报告
  • 从实践出发--探究C/C++空类的大小,真的是1吗?
  • bmsimilarity的打分 调试参数
  • 选择排序 冒泡排序
  • windows电脑给iOS手机安装ipa包的方法
  • 宝塔面板Nginx报错: IP+端口可以直接从访问,反向代理之后就504了 Gateway Time-out
  • Xilinx FPGA XCKU115‑2FLVA1517I AMD KintexUltraScale
  • 052_迭代器(Iterator / ListIterator)
  • The Survey of Few-shot Prompt Learning on Graph
  • Ubuntu 22.04编译安装Nginx 1.28
  • Vue3 面试题及详细答案120道 (1-15 )
  • 可变形卷积神经网络详解:原理、API与实战
  • 如何使用终端查看任意Ubuntu的版本信息
  • ACE 插入元件
  • 信息学奥赛一本通 1576:【例 2】选课 | 洛谷 P2014 [CTSC1997] 选课
  • ​NVIDIA V100、H100、A100 和 RTX 5090​​ 的显存
  • C++高性能日志库spdlog介绍
  • 【郑州课工场】深入解析Kubernetes 1.33版本Pod Priority and Preemption功能
  • 【免费版】开启 Youtube 双语字幕
  • C/C++---emplace和emplace_back
  • Go语言的包
  • TSN(时间敏感网络)协议栈在STM32平台(尤其是STM32MP2系列)上的实现
  • 设备虚拟化技术-IRF
  • C++ 中的默认构造函数:非必要,不提供
  • 苍穹外卖Day5
  • B树、B+树的区别及MySQL为何选择B+树
  • Git核心功能简要学习
  • GraphRAG快速入门和原理理解