人工智能学习笔记 - 机器学习算法 - 监督学习 - K-近邻(K-NN)与朴素贝叶斯

24 阅读1分钟

人工智能学习笔记 - 机器学习算法 - 监督学习 - K-近邻(K-NN)与朴素贝叶斯

K-近邻(K-Nearest Neighbors, K-NN)和朴素贝叶斯(Naive Bayes)都是非常经典的监督学习算法, 前者是基于距离的惰性学习方法,后者是基于概率统计的生成式模型


K-近邻(K-Nearest Neighbors, K-NN)

基本思想

K-NN 的核心思想非常直观:
一个样本的类别由距离它最近的 K 个样本共同决定。

  • 不显式训练模型
  • 预测阶段才进行计算
  • 属于典型的「惰性学习(Lazy Learning)」

算法流程

给定训练集:

D={(xi,yi)}i=1n\mathcal{D} = \{(\mathbf{x}_i, y_i)\}_{i=1}^n

预测新样本 x\mathbf{x} 的步骤:

  • 计算 x\mathbf{x} 与所有训练样本的距离
  • 选取距离最近的 KK 个样本
  • 对这 KK 个样本的标签进行投票(分类)或平均(回归)

常见距离度量

欧氏距离(最常用)
d(x,z)=j=1d(xjzj)2d(\mathbf{x}, \mathbf{z}) = \sqrt{\sum_{j=1}^{d} (x_j - z_j)^2}
曼哈顿距离
d(x,z)=j=1dxjzjd(\mathbf{x}, \mathbf{z}) = \sum_{j=1}^{d} |x_j - z_j|
闵可夫斯基距离(统一形式)
d(x,z)=(j=1dxjzjp)1/pd(\mathbf{x}, \mathbf{z}) = \left( \sum_{j=1}^{d} |x_j - z_j|^p \right)^{1/p}

K 值的影响

  • KK 较小:
    • 决策边界复杂
    • 对噪声敏感
    • 容易过拟合
  • KK 较大:
    • 决策边界平滑
    • 容易欠拟合

特点与注意事项

  • 必须进行特征缩放(标准化或归一化)
  • 预测时间复杂度高
  • 对高维数据效果变差(维度灾难)

朴素贝叶斯(Naive Bayes)

基本思想

朴素贝叶斯是一类基于贝叶斯定理的概率分类模型,属于生成式模型。

核心假设:
在给定类别的条件下,各个特征之间相互独立。


贝叶斯公式

P(yx)=P(xy)P(y)P(x)P(y \mid \mathbf{x}) = \frac{P(\mathbf{x} \mid y) P(y)}{P(\mathbf{x})}

其中:

  • P(y)P(y):先验概率
  • P(xy)P(\mathbf{x} \mid y):似然
  • P(yx)P(y \mid \mathbf{x}):后验概率

分类时只需比较:

y^=argmaxyP(xy)P(y)\hat{y} = \arg\max_y P(\mathbf{x} \mid y) P(y)

朴素独立性假设

对特征 x=(x1,x2,,xd)\mathbf{x} = (x_1, x_2, \dots, x_d)

P(xy)=j=1dP(xjy)P(\mathbf{x} \mid y) = \prod_{j=1}^{d} P(x_j \mid y)

该假设极大简化了计算,使模型高效可行。


常见朴素贝叶斯模型

高斯朴素贝叶斯(Gaussian NB)

适用于连续特征:

P(xjy)=12πσy2exp((xjμy)22σy2)P(x_j \mid y) = \frac{1}{\sqrt{2\pi\sigma_y^2}} \exp\left(-\frac{(x_j - \mu_y)^2}{2\sigma_y^2}\right)

多项式朴素贝叶斯(Multinomial NB)

适用于文本、词频数据:

P(xjy)=Njy+αNy+αdP(x_j \mid y) = \frac{N_{jy} + \alpha}{N_y + \alpha d}

伯努利朴素贝叶斯(Bernoulli NB)

适用于二值特征(出现/未出现):

P(xjy)=pxj(1p)1xjP(x_j \mid y) = p^{x_j}(1-p)^{1-x_j}

拉普拉斯平滑

防止概率为 0:

P(xjy)=Njy+αNy+αdP(x_j \mid y) = \frac{N_{jy} + \alpha}{N_y + \alpha d}

其中:

  • α=1\alpha=1 为拉普拉斯平滑
  • α>0\alpha>0 为一般加性平滑