kNN 的数学表达式

本文围绕kNN这一机器学习基础算法的数学式子表达展开。介绍了基本符号,提出两种方案:方案一刚好考虑k个邻居,阐述了邻域表示和投票过程;方案二则是处理距离相等更好的方式,定义了δ邻域、阈值等,为kNN算法的数学建模提供思路。

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

kNN 是机器学习的基础算法. 程序容易写, 但要用数学式子来表达, 却有一定难度. 今天我们就来杠一下吧.

1. 基本符号

Table 1. Notations.

符号涵义
U={x1,…,xn}\mathbf{U} = \{x_1, \dots, x_n\}U={x1,,xn}样本集
δij=δ(xi,xj)\delta_{ij} = \delta(x_i, x_j)δij=δ(xi,xj)xix_ixixjx_jxj 的距离
δB(xi,xj)\delta_{\mathbf{B}}(x_i, x_j)δB(xi,xj)使用属性子集 B\mathbf{B}Bxix_ixixjx_jxj 的距离
d(xi)d(x_i)d(xi)xix_ixi 的决策属性值, 即类别

说明: 由于 ddd 要用于表示决策属性, 距离只好用 δ\deltaδ. 也可以考虑换成 disdisdis 之类.

2. 方案一: 刚好考虑 kkk 个邻居

作为 kkkNN 的基本方案, 邻居刚好考虑 kkk 个.

2.1 邻域的表示

对于 x∉Ux \not\in \mathbf{U}xU, 由于它到不同样本的距离可能相等, 其 kkk 个邻居并不一定唯一, 定义如下:

Definition 1. any X⊆U\mathbf{X} \subseteq \mathbf{U}XU is a set of kkk-nearest neighbors of x∉Ux \not\in \mathbf{U}xU iff

  1. ∣X∣=k|\mathbf{X}| = kX=k;
  2. ∀xi∈X\forall x_i \in \mathbf{X}xiX and xj∈U∖Xx_j \in \mathbf{U} \setminus \mathbf{X}xjUX, δ(x,xi)≤δ(x,xj)\delta(x, x_i) \leq \delta(x, x_j)δ(x,xi)δ(x,xj).

换种写法:
The set family of all kkk-nearest neighbors of x∉Ux \not\in \mathbf{U}xU is given by
Tk(x,U)={X⊆U∣∣X∣=k,∀xi∈X and xj∈U∖X,dis(x,xi)≤dis(x,xj)},(1)\Tau_k(x, \mathbf{U}) = \{\mathbf{X} \subseteq \mathbf{U} \vert |\mathbf{X}| = k, \forall x_i \in \mathbf{X} \textrm{ and } x_j \in \mathbf{U} \setminus \mathbf{X}, dis(x, x_i) \leq dis(x, x_j)\}, \tag{1}Tk(x,U)={XUX=k,xiX and xjUX,dis(x,xi)dis(x,xj)},(1)
where ∣⋅∣\vert \cdot \vert denotes the cardinality of a set.

下面来定义比 xix_ixi 更靠近 xxx 的集合.
The set of instances that are closer to xxx than xix_ixi is given by
C(x,xi,U)={xj∈U∣δ(x,xj)<δ(x,xi)}.C(x, x_i, \mathbf{U}) = \{x_j \in \mathbf{U} \vert \delta(x, x_j) < \delta(x, x_i)\}.C(x,xi,U)={xjUδ(x,xj)<δ(x,xi)}.

如果想要 kkk-近邻的唯一性, 就需要加一个条件.
Definition 2. Suppose that δ(x,xi)\delta(x, x_i)δ(x,xi) is different for any xi∈Ux_i \in \mathbf{U}xiU. The set of kkk-nearest neighbors of xxx is given by
τk(x,U)={xi∈U∣∣C(x,xi,U)∣<k}.(2)\tau_k(x, \mathbf{U}) = \{x_i \in \mathbf{U} \vert |C(x, x_i, \mathbf{U})| < k\}. \tag{2}τk(x,U)={xiUC(x,xi,U)<k}.(2)

2.2 投票过程的表示

根据邻域进行投票, 就可以获得支持率最高的类, 所为最终的分类.

p(x,τk(x,U))=arg max⁡c∣{xi∈τk(x,U)∣d(xi)=c}∣.(3)p(x, \tau_k(x, \mathbf{U}) ) = \argmax_{c}\vert \{x_i \in \tau_k(x, \mathbf{U}) \vert d(x_i) = c\} \vert. \tag{3}p(x,τk(x,U))=cargmax{xiτk(x,U)d(xi)=c}.(3)

注意到这里的值其实也不是唯一的, 因为得数最多的类别可能不止一个.

2.3 鹏鹏提供的方式

标签为 ccc 的实例集合为:
Dc(U)={xi∈U∣d(xi)=c}.(4)D_c(\mathbf{U}) = \{x_i \in \mathbf{U} \vert d(x_i) = c\}. \tag{4}Dc(U)={xiUd(xi)=c}.(4)

因此
p(x,τk(x,U))=arg max⁡c∣{τk(x,U)∩Dc(U)}∣.(5)p(x, \tau_k(x, \mathbf{U}) ) = \argmax_{c}\vert \{\tau_k(x, \mathbf{U}) \cap D_c(\mathbf{U})\} \vert. \tag{5}p(x,τk(x,U))=cargmax{τk(x,U)Dc(U)}.(5)
甚至
p(x,τk(x,U))=arg max⁡c∣{Dc(τk(x,U))}∣.(6)p(x, \tau_k(x, \mathbf{U}) ) = \argmax_{c}\vert \{D_c(\tau_k(x, \mathbf{U}))\} \vert. \tag{6}p(x,τk(x,U))=cargmax{Dc(τk(x,U))}.(6)

3. 方案二: 处理距离相等更好的方式

假设班上有 1 名同学考了 100 分, 3 名同学考了 99 分, 其他同学都是 98 分及以下. 如果想取前 2 名, 怎么办?
按上一节的方案, 按照某种策略 (包括随机, 低序号优先), 把考 99 分的 3 名同学中选择 1 位作为第 2 名, 其余同学机会.
本节讨论另一种方案: 将这 3 名同学并列第 2. 这种方案的优势是公平, 但劣势是已经不再取刚好 2 名.

3.1 邻域的表示

首先来定义 xxxU\mathbf{U}U 中的 δ\deltaδ 邻域.
Definition 2. The ε\varepsilonε-neighborhood of xxx in U\mathbf{U}U is given by
nε(x,U)={xi∈U∣δ(x,xi)≤ε}.n_\varepsilon(x, \mathbf{U}) = \{x_i \in \mathbf{U} \vert \delta(x, x_i) \leq \varepsilon\}.nε(x,U)={xiUδ(x,xi)ε}.

然后来讨论刚好达到或超过 kkk 个邻居的域值.
Definition 3. ε=ε(k,x,U)\varepsilon = \varepsilon(k, x, \mathbf{U})ε=ε(k,x,U) is called the kkk-nearest neighbors threshold of xxx wrt. U\mathbf{U}U iff
a) ∣nε(x,U)∣≥k\vert n_\varepsilon(x, \mathbf{U}) \vert \geq knε(x,U)k;
b) Any ε′<ε\varepsilon' < \varepsilonε<ε, ∣nε′(x,U)∣<k\vert n_{\varepsilon'}(x, \mathbf{U}) \vert < knε(x,U)<k.

其中 a) 为达到邻域个数的约束, 条件 b) 为最小性的约束. 两个综合, 就是“刚好达到”.

Definition 4. The extended kkk nearest neighbors of xxx in U\mathbf{U}U is given by τk(x,U)={xi∈U∣δ(x,xi)≤ε(k,x,U)}.\tau_k(x, \mathbf{U}) = \{x_i \in \mathbf{U} \vert \delta(x, x_i) \leq \varepsilon(k, x, \mathbf{U})\}.τk(x,U)={xiUδ(x,xi)ε(k,x,U)}.

用这三个定义, 感觉有些绕, 我们再来想想更好的办法.

Definition 3’. The kkk-nearest neighbors threshold of xxx wrt. U\mathbf{U}U is given by
ε(k,x,U)=min⁡∣nε(x,U)∣≥kϵ.\varepsilon(k, x, \mathbf{U}) = \min_{\vert n_\varepsilon(x, \mathbf{U}) \vert \geq k} \epsilon.ε(k,x,U)=nε(x,U)kminϵ.

用它来代替 Definition 3 好像更简洁. min 下方的条件虽然有点奇怪, 但也是可接受的.

3.2 投票

与上一节相同.


欢迎在留言区拍砖

这里也只是提供一些建模的思路, 只要能说清楚, 内容没毛病都行.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值