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

【机器学习】分类

文章目录

    • 1. 能否用回归解决分类问题
    • 2. 生成模型(概率生成)
    • 3. 判别模型(逻辑回归)
    • 4. 多分类问题

1. 能否用回归解决分类问题

二元分类

  • 数据分布不规律,回归函数会尽量减少误差,导致不合理的偏移
  • 离分界较远的点会影响划分
  • 决策边界偏移:难以找到回归函数,使大部分样本点集中在离散点附近

多元分类

  • 使用数值描述类别时,存在问题:相近的数值之间可能有联系,但实际分类之间没有隐含关系

2. 生成模型(概率生成)

确定模型

  • 贝叶斯公式:根据先验概率求后验概率

P ( C 1 ∣ x ) = P ( C 1 ) P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 1 ) + P ( C 2 ) P ( x ∣ C 2 ) P(C_1|x) = \frac{P(C_1)P(x|C_1)}{P(C_1)P(x|C_1) + P(C_2)P(x|C_2)} P(C1x)=P(C1)P(xC1)+P(C2)P(xC2)P(C1)P(xC1)

  • 对于二分类问题,只需判断是否属于分类 1,分类 2 即确定

  • 目标是找到拟合分布 P ( x ∣ C 1 ) P(x|C_1) P(xC1) P ( x ∣ C 2 ) P(x|C_2) P(xC2)

评估函数

  • 高斯分布:寻找 μ \mu μ Σ \Sigma Σ,使得高斯分布与 x 在 C 中的分布最大匹配
  • 分别寻找两个分布 C 1 C1 C1 C 2 C2 C2

找到最优的函数

  • 极大似然估计法
  • 通过代入所有的 x x x 到高斯分布,计算概率的连乘结果,最大化此结果,确定最优的 μ \mu μ Σ \Sigma Σ

如何实现分类

  • 找到高斯分布后,代入问题模型中,确定后验概率函数,输入 x x x 就能得到分类结果。

优化

  • 共用协方差 Σ \Sigma Σ:减少参数,防止过拟合。
  • 这时找到的函数将会是一条直线。

3. 判别模型(逻辑回归)

说明

  • 当共用协方差时,可以得到如下公式:

P ( C 1 ∣ x ) = σ ( w x + b ) P(C_1|x) = \sigma(wx + b) P(C1x)=σ(wx+b)

  • 其中, σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1 为 Sigmoid 函数。

  • 直接训练 w w w b b b,无需假设高斯分布。

做法

  • 确定模型:

    f ( x ) = P ( C 1 ∣ x ) = σ ( w x + b ) f(x) = P(C_1|x) = \sigma(wx + b) f(x)=P(C1x)=σ(wx+b)

    目标是直接找 w w w b b b 来确定后验概率。

  • 评估函数:
    L ( w , b ) = f w , b ( x 1 ) f w , b ( x 2 ) ( 1 − f w , b ( x 3 ) ) . . . L(w,b)=f_{w,b}(x^1)f_{w,b}(x^2)(1-f_{w,b}(x^3))... L(w,b)=fw,b(x1)fw,b(x2)(1fw,b(x3))...
    此时目标是最大化评估函数。

    引入交叉熵(Cross-Entropy):
    H ( p , q ) = − ∑ p ( x ) ln ⁡ ( q ( x ) ) H(p,q) = - \sum p(x) \ln(q(x)) H(p,q)=p(x)ln(q(x))

    • 交叉熵越小,表示两个分布越接近。

    进一步损失函数:

    − ln ⁡ L ( w , b ) = − ∑ [ y n ln ⁡ f w , b ( x n ) + ( 1 − y n ) ln ⁡ ( 1 − f w , b ( x n ) ) ] -\ln L(w,b) = - \sum \left[ y^n \ln f_{w,b}(x^n) + (1 - y^n) \ln(1 - f_{w,b}(x^n)) \right] lnL(w,b)=[ynlnfw,b(xn)+(1yn)ln(1fw,b(xn))]

    • 目标是最小化损失函数。
  • 寻找最优函数

    • 使用梯度下降法更新参数:

    w t + 1 = w t − η ∑ n [ − ( y n − f w , b ( x n ) ) x n ] w_{t+1} = w_t - \eta \sum_n \left[ -(y^n - f_{w,b}(x^n)) x^n \right] wt+1=wtηn[(ynfw,b(xn))xn]

与线性回归比较

  • 逻辑回归中引入了 Sigmoid 函数,输出值范围为 0 到 1。
  • 线性回归输出可能是任意实数。
  • 逻辑回归的损失函数是交叉熵,而线性回归使用平方误差。

与生成模型比较

  • 生成模型假设数据分布符合某个高斯分布。
  • 判别模型不做假设,直接学习分类边界(求 w w w b b b)。
  • 判别模型通常比生成模型表现好,但在数据不足的情况下,生成模型更为实用。

逻辑回归缺陷

  • 逻辑回归无法解决线性不可分问题,需要通过特征转换来处理,这通常是深度学习的核心。

为什么不用平方误差

  • 若用平方误差,损失函数为:

    L ( w , b ) = 1 2 ∑ ( y n − f w , b ( x n ) ) 2 L(w,b) = \frac{1}{2} \sum (y^n - f_{w,b}(x^n))^2 L(w,b)=21(ynfw,b(xn))2

    梯度为:

    d L d w = 2 ( y n − f w , b ( x n ) ) f w , b ( x n ) ( 1 − f w , b ( x n ) ) x n \frac{dL}{dw} = 2(y^n - f_{w,b}(x^n)) f_{w,b}(x^n) (1 - f_{w,b}(x^n)) x^n dwdL=2(ynfw,b(xn))fw,b(xn)(1fw,b(xn))xn

  • y n = 1 y^n = 1 yn=1 f ( x n ) = 1 f(x^n) = 1 f(xn)=1 时,梯度为 0(正常)。

  • y n = 1 y^n = 1 yn=1 f ( x n ) = 0 f(x^n) = 0 f(xn)=0 时,梯度也为 0(不正常,训练非常缓慢)。

  • 结论:使用平方误差损失函数,梯度会在边界附近为零,导致训练速度非常慢。交叉熵的损失函数更适合分类问题。


4. 多分类问题

  • 使用 逻辑回归 计算每个类别的概率值,然后通过 Softmax 函数选择最大概率的类别。
  • Softmax ( x i ) = e x i ∑ j e x j \text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}} Softmax(xi)=jexjexi
http://www.lryc.cn/news/511687.html

相关文章:

  • 5.若依的角色权限控制
  • Lumos学习王佩丰Excel第二十三讲:饼图美化与PPT图表
  • 安装winserver2008R2虚拟机步骤
  • ACPI PM Timer
  • Linux 和设备树
  • Qt仿音乐播放器:QFileDialog添加本地文件
  • Odoo 引用字段 fields.Reference:动态关系的选择器
  • Android笔试面试题AI答之Android基础(6)
  • C# 中的记录类型简介 【代码之美系列】
  • 利用Java爬虫速卖通按关键字搜索AliExpress商品
  • gitlab runner 实现 微信小程序自动化部署
  • Playwright爬虫xpath获取技巧
  • 总结TCP/IP四层模型
  • netcat和nmap的区别
  • MinIO服务器文件复制(Windows环境Linux环境)
  • 【机器学习】【朴素贝叶斯分类器】从理论到实践:朴素贝叶斯分类器在垃圾短信过滤中的应用
  • 无监督学习算法
  • 【Compose multiplatform教程17】【组件】BoxWithConstraints组件
  • 银河麒麟操作系统安装达梦数据库(超详细)
  • Spring源码_05_IOC容器启动细节
  • 科大讯飞在线语音合成(流式版)python版
  • 常见搜索算法汇总
  • vue 中 ref 详解
  • 探索开源项目 kernel:技术的基石与无限可能
  • C 实现植物大战僵尸(二)
  • Vivado - TCL 命令(DPU脚本、v++命令、impl策略)
  • 【JDBC】数据库连接的艺术:深入解析数据库连接池、Apache-DBUtils与BasicDAO
  • hadoop-common的下载位置分享
  • 【机器学习】SVM支持向量机(一)
  • Spring Boot介绍、入门案例、环境准备、POM文件解读