机器学习总结二之K近邻

本文详细介绍了K近邻(KNN)的工作原理,包括KNN的关键流程,如距离/相似度计算,并探讨了欧氏距离、马氏距离、曼哈顿距离、切比雪夫距离等常用距离度量方法。同时,文章还讨论了KNN中的超参数选择、处理大量数据的方法以及如何考虑样本的重要性和特征相关性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习二之K近邻

K近邻原理

K近邻工作机制:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个邻居的信息来进行预测。通常在分类任务中可使用投票法,即选择这k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用平均法,即将k个样本的实际输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或者加权投票,距离越近的样本权重越大。

K近邻学习关键流程

  • 把一个物体表示成向量
  • 标记好每个物体的标签
  • 计算两个物体之间的距离/相似度
  • 选择合适的K
距离/相似度计算

常用的距离计算方法有,欧氏距离,马氏距离,曼哈顿距离,切比雪夫距离等。
欧氏距离:在二维和三维空间中的欧式距离的就是两点之间的距离。不失一般性,在n维空间中,两点之间的欧氏距离表示如下
d = ∑ i = 1 n ( x i 1 − x i 2 ) 2 d=\sqrt{\sum_{i=1}^{n} \left ( x_{i1} -x_{i2}\right ) ^2} d=i=1n(xi1xi2)2

马氏距离:表示数据的协方差距离,是一种有效的计算两个未知样本集的相似度的方法。在n维空间中,两点之间的马氏距离可以写成
d = ( X 1 − X 2 ) T S − 1 ( X 1 − X 2 ) d=\sqrt{(X_{1}-X_{2})^{T}S^{-1}(X_{1}-X_{2})} d=(X1X2)TS1(X1X2)
上 式 中 , S − 1 为 n × n 的 协 方 差 矩 阵 上式中,S^{-1}为n×n的协方差矩阵 S1n×n
曼哈顿距离:标明两个点在标准坐标系上的绝对轴距总和。在n维空间中,两点间的曼哈顿距离可以写成
d = ∑ i = 1 n ∣ x i 1 − x i 2 ∣ d=\sum_{i=1}^{n}|x_{i1}-x_{i2}| d=i=1nxi1xi2
切比雪夫距离:各坐标数值差绝对值的最大值。在n维空间中,两点之间的切比雪夫距离可以写成
d = m a x ∣ x i 1 − x i 2 ∣ , i = 1 , 2... , n d=max|x_{i1}-x_{i2}|, i=1,2...,n d=maxxi1xi2,i=1,2...,n
闵可夫斯基距离:是一组距离集合,在n维空间中,两点之间的闵可夫斯基距离可以写成
d = ∑ i = 1 n ( x i 1 − x i 2 ) p p d=\sqrt[p]{\sum_{i=1}^{n} \left ( x_{i1} -x_{i2}\right ) ^p} d=pi=1n(xi1xi2)p
当p为1时,该式为曼哈顿距离;p为2时,该式为欧氏距离;当p为无穷大时,该式的极限为切比雪夫距离。
核化距离 在距离计算时加入二阶,三阶,高斯等核函数

KNN常见问题问答

如何选择KNN的超参数: K是KNN算法的超参数,随着K的增大,KNN算法的类别划分曲线变得平滑。K的值可以通过交叉验证的方法来选择,对于其它的机器学习算法超参数选择同样可以用 交叉验证方法。
如何处理大量数据: 使用K-D tree方法,类似哈希算法(LSH)
如何处理特征之间的相关性: 使用马氏距离,利用 large margin loss 方法学习马氏距离公式中协方差矩阵S。
如何处理样本的重要性: 对距离加权,距离近的权重大。加权方法如下
w ( X , X i ) = e x p ( − λ ∣ X − X i ∣ 2 2 ) w(X,X_{i})=exp(-\lambda|X-X_{i}|_{2}^{2}) w(X,Xi)=exp(λXXi22)
P ( y ∣ X ) = ∑ i = 1 n w ( X , X i ) δ ( y , y i ) ∑ i = 1 n w ( X , X i ) P(y|X)=\frac{\sum_{i=1}^{n}w(X,X_{i})\delta (y,y_{i})}{\sum_{i=1}^{n}w(X,X_{i})} P(yX)=i=1nw(X,Xi)i=1nw(X,Xi)δ(y,yi)
δ ( y , y i ) = { 1 0 y = y i y ≠ y i \delta(y,y_{i})=\left\{\begin{matrix} 1\\ 0\end{matrix}\right. \begin{matrix} y=y_{i}\\ y\neq y_{i}\end{matrix} δ(y,yi)={10y=yiy̸=yi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值