人工智能学习笔记 - 机器学习算法 - 监督学习 - 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
预测新样本 x 的步骤:
- 计算 x 与所有训练样本的距离
- 选取距离最近的 K 个样本
- 对这 K 个样本的标签进行投票(分类)或平均(回归)
常见距离度量
欧氏距离(最常用)
d(x,z)=j=1∑d(xj−zj)2
曼哈顿距离
d(x,z)=j=1∑d∣xj−zj∣
闵可夫斯基距离(统一形式)
d(x,z)=(j=1∑d∣xj−zj∣p)1/p
K 值的影响
特点与注意事项
- 必须进行特征缩放(标准化或归一化)
- 预测时间复杂度高
- 对高维数据效果变差(维度灾难)
朴素贝叶斯(Naive Bayes)
基本思想
朴素贝叶斯是一类基于贝叶斯定理的概率分类模型,属于生成式模型。
核心假设:
在给定类别的条件下,各个特征之间相互独立。
贝叶斯公式
P(y∣x)=P(x)P(x∣y)P(y)
其中:
- P(y):先验概率
- P(x∣y):似然
- P(y∣x):后验概率
分类时只需比较:
y^=argymaxP(x∣y)P(y)
朴素独立性假设
对特征 x=(x1,x2,…,xd):
P(x∣y)=j=1∏dP(xj∣y)
该假设极大简化了计算,使模型高效可行。
常见朴素贝叶斯模型
高斯朴素贝叶斯(Gaussian NB)
适用于连续特征:
P(xj∣y)=2πσy21exp(−2σy2(xj−μy)2)
多项式朴素贝叶斯(Multinomial NB)
适用于文本、词频数据:
P(xj∣y)=Ny+αdNjy+α
伯努利朴素贝叶斯(Bernoulli NB)
适用于二值特征(出现/未出现):
P(xj∣y)=pxj(1−p)1−xj
拉普拉斯平滑
防止概率为 0:
P(xj∣y)=Ny+αdNjy+α
其中:
- α=1 为拉普拉斯平滑
- α>0 为一般加性平滑