【机器学习】分类

文章目录

    • [1. 能否用回归解决分类问题](#1. 能否用回归解决分类问题)
    • [2. 生成模型(概率生成)](#2. 生成模型(概率生成))
    • [3. 判别模型(逻辑回归)](#3. 判别模型(逻辑回归))
    • [4. 多分类问题](#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(C1∣x)=P(C1)P(x∣C1)+P(C2)P(x∣C2)P(C1)P(x∣C1)

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

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

评估函数

  • 高斯分布:寻找 μ \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(C1∣x)=σ(wx+b)

  • 其中, σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e−x1 为 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(C1∣x)=σ(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)(1−fw,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)+(1−yn)ln(1−fw,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∑−(yn−fw,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∑(yn−fw,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(yn−fw,b(xn))fw,b(xn)(1−fw,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
相关推荐
江畔柳前堤4 小时前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
阿里云大数据AI技术4 小时前
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
人工智能·flink
陕西企来客4 小时前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
阿里云大数据AI技术4 小时前
从算力到智能体,面向 Agentic AI 的基础设施演进
人工智能·agent
hangyuekejiGEO5 小时前
GEO技术服务选型指南
大数据·人工智能·python
阿里云大数据AI技术5 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
维基框架6 小时前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab6 小时前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能
AKAMAI6 小时前
你的源服务器可能是你做出的最昂贵决定
运维·人工智能·云计算
冬奇Lab6 小时前
【无标题】
人工智能·开源