3 K-Nearest Neighbor

3. K-Nearest Neighbor

Click here for notes and code

Nearest Neighbor(1NN)

Untitled

  • To classify a new example x x x:

    • Label x x x with the label of the closest example to x x xin the training set.
  • Euclidean Distance

    D ( x i , x j ) = ∑ k = 1 d ( x i k − x j k ) 2 D\left(\boldsymbol{x}_i, \boldsymbol{x}_j\right)=\sqrt{\sum\limits_{k=1}^d\left(x_{i k}-x_{j k}\right)^2} D(xi,xj)=k=1d(xikxjk)2

K-Nearest-Neighbors (KNN)

Untitled

  • Low latitude large-scale data

  • x x x is close to a blue point.

    But most of the next closest points are red.

  • Find k k k nearest neighbors of x x x.

  • Label x x x with the majority label within the k k k nearest neighbors

Consider:How can we handle ties for even values of k?

KNN rule is certainly simple and intuitive,but does it work?

  • KNN is a Goo Approximator on any smooth distribution:

    • Converges to perfect solution if clear separation

      lim ⁡ n → ∞ ϵ K N N ( n ) ≤ 2 ϵ ∗ ( 1 − ϵ ∗ ) \lim _{n \rightarrow \infty} \epsilon_{\mathrm{KNN}}(n) \leq 2 \epsilon^*\left(1-\epsilon^*\right) nlimϵKNN(n)2ϵ(1ϵ)

      (Cover Hart,1969)

  • KNN is Good Model on complex distributions.

The Effect of K

Untitled

Untitled

  • Increasing k simplifies the decision boundary

    Majority voting means less emphasis on individual points

  • Choose best k on the validation set.(Often set k as an odd number).

KNN: Inductive Bias

  • Similar points have similar labels.
  • All dimensions are created equal!

Feature Normalization

  • Z-score normalization:
    • For each feature dimension j,compute based on its samples:
    • Mean μ j = 1 N ∑ i = 1 N x i j \mu_j=\dfrac{1}{N} \sum\limits_{i=1}^N x_{i j} μj=N1i=1Nxij
    • Variance σ j = 1 N ∑ i = 1 N ( x i j − μ j ) 2 \sigma_j=\sqrt{\dfrac{1}{N} \sum\limits_{i=1}^N\left(x_{i j}-\mu_j\right)^2} σj=N1i=1N(xijμj)2
    • Normalize the feature into a new one: x ^ i j ← x i j − μ j σ j \hat{x}_{i j} \leftarrow \dfrac{x_{i j}-\mu_j}{\sigma_j} x^ijσjxijμj

Distance Selection

  • Cosine Distance: cos ⁡ ( x i , x j ) = ⟨ x i , x j ⟩ ∥ x i ∥ ∥ x j ∥ \cos \left(\boldsymbol{x_i}, \boldsymbol{x_j}\right)=\dfrac{\left\langle \boldsymbol{x_i}, \boldsymbol{x_j}\right\rangle}{\left\|\boldsymbol{x_i}\right\|\left\|\boldsymbol{x_j}\right\|} cos(xi,xj)=xixjxi,xj
  • Minkowski Distance: D p ( x i , x j ) = ∑ k = 1 d ∣ x i k − x j k ∣ p p D_p\left(\boldsymbol{x}_i, \boldsymbol{x}_j\right)=\sqrt[p]{\sum\limits_{k=1}^d\left|x_{i k}-x_{j k}\right|^p} Dp(xi,xj)=pk=1dxikxjkp
  • Mahalanobis Distance: D M ( x i , x j ) = ( x i − x j ) T M ( x i − x j ) D_M\left(\boldsymbol{x}_i, \boldsymbol{x}_j\right)=\sqrt{\left(\boldsymbol{x}_i-\boldsymbol{x}_j\right)^{\mathrm{T}} \boldsymbol{M}\left(\boldsymbol{x}_i-\boldsymbol{x}_j\right)} DM(xi,xj)=(xixj)TM(xixj)

Weighted KNN

  • Vanilla KNN uses majority vote to predict discrete outputs.

  • Weighted KNN assigns greater weights to closer neighbors.

    • Weighting is a common approach used in machine learning.
  • Distance-weighted Classification:

    y ^ = argmax ⁡ c ∈ y ∑ x ′ ∈ KNN ⁡ c ( x ) 1 D ( x , x ′ ) 2 \hat{y}=\operatorname{argmax}_{c \in y} \sum_{\boldsymbol{x}^{\prime} \in \operatorname{KNN}_c(\boldsymbol{x})} \frac{1}{D\left(\boldsymbol{x}, \boldsymbol{x}^{\prime}\right)^2} y^=argmaxcyxKNNc(x)D(x,x)21

  • Distance-weighted Regression:

    y ^ = ∑ x ′ ∈ KNN ⁡ ( x ) 1 D ( x , x ′ ) 2 y ′ \hat{y}=\sum_{x^{\prime} \in \operatorname{KNN}(x)} \frac{1}{D\left(x, x^{\prime}\right)^2} y^{\prime} y^=xKNN(x)D(x,x)21y

  • Other weighting function (e.g.exponential family)can also be used.

KNN Summary

  • When to use:
    • Few attributes per instance (expensive computation)
    • Lots of training data (curse of dimensionality
  • Advantages:
    • Agnostically learn complex target functions
    • Do not lose information (store original data)
    • Data number can be very large (big pro!)
    • Class number can be very large (biggest pro!)
      • All other ML algorithms may fail here!
  • Disadvantages:
    • Slow at inference time (acceleration a must)
    • Ineffective in high dimensions(curse of dimensionality)
    • Fooled easily by irrelevant attributes (feature engineering crucial)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: k最近邻算法(k-nearest neighbor)是一种基于实例的学习方法,它通过计算一个样本的k个最近邻居的标签来预测该样本的标签。该算法的核心思想是相似的样本具有相似的标签。在分类问题中,k最近邻算法将样本分配给最常见的类别。在回归问题中,k最近邻算法将样本分配给其k个最近邻居的平均值。 ### 回答2: k近邻是一种常见的机器学习算法,用于分类和回归问题。具体来说,它基于训练集中样本的特征来对未知数据进行分类或回归。k表示最近邻居的数量,通常选择奇数以避免平局。 分类问题的k近邻算法的实现方式如下:首先,根据训练数据的特征,计算每个训练样本和待分类样本之间的距离。然后,选择离待分类样本最近的k个训练样本。最后,将k个训练样本中出现频率最高的类别作为待分类样本的类别。 回归问题中,k近邻算法的实现方法类似于分类问题。根据训练数据的特征,计算每个训练样本和待预测样本之间的距离。然后选择离待预测样本最近的k个训练样本,预测待预测样本的值为这k个训练样本的平均值或加权平均值。 k近邻算法的可解释性非常强,因为它直接基于训练数据创建一个分类或回归的决策边界。它也很容易实现,因为它不需要模型训练,而且它可以适用于数据集的任何类型(数字、文本,甚至图像)。 然而,k近邻算法也存在一些缺点。例如,当训练集很大时,计算和存储距离矩阵可能会变得非常耗时和昂贵。此外,k值的选择对算法的性能和准确性非常重要。较小的k值容易过拟合,而较大的k值容易欠拟合。 总之,k近邻是一种简单且广泛应用于分类和回归问题的机器学习方法。虽然它可能不是最先进的方法,但在某些情况下,它仍然可以是一个非常有用的工具。 ### 回答3: k-最近邻是一种常见的分类和回归算法。它的主要思想是,对于一个测试点,我们将其与所有训练数据中的点进行距离计算,然后选择距离最近的k个点,并将它们的标签或数值作为测试点的预测值。 在分类问题中,我们通常采用多数表决的方式作为预测结果,即最终结果为k个邻居中最常见的标签。在回归问题中,我们将k个邻居的数值取平均值作为预测值。 k-最近邻的优点在于简单易懂,不需要事先对数据做任何假设或训练,适合于小规模数据集,并且对异常点具有一定的鲁棒性。另外,它不需要对数据做任何假设或训练,可以用于在线学习和动态更新。 缺点在于计算复杂度较高,因为对于每个测试点都需要计算与所有训练点的距离。此外,k的取值需要经过一定的调整,并且对于不平衡数据或噪声较大的数据集效果可能不理想。 针对k-最近邻的改进方法有很多,比如基于树结构的快速最近邻算法(如kd-tree),局部加权最近邻算法(LW-KNN),和基于核的最近邻算法(KNN+)。这些方法的目的是减少计算复杂度或提高算法的鲁棒性和泛化能力。 总之,k-最近邻是一种常见的分类和回归算法,具有简单易懂、适用于小规模数据集和在线学习等优点,并且可以通过改进方法提高其效果和泛化能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值