K - 近邻模型知识点全览:构建智能预测的基石

  1. 定义
    • K - 近邻(K - Nearest Neighbors,KNN)模型是一种基于实例的监督学习算法。它的基本思想是给定一个训练数据集,对于一个新的输入实例,在训练数据集中找到与它最相似(距离最近)的K个实例,然后根据这K个实例的类别(对于分类问题)或数值(对于回归问题)来预测新实例的类别或数值。
    • 例如,在一个判断水果是苹果还是橙子的分类问题中,如果K = 3,新水果周围最近的3个水果中有2个是苹果,1个是橙子,那么这个新水果可能就被分类为苹果。
  2. 距离度量
    • 欧几里得距离:这是最常用的距离度量方法。对于两个n维向量\(x=(x_1,x_2,\cdots,x_n)\)\(y=(y_1,y_2,\cdots,y_n)\),欧几里得距离\(d(x,y)=\sqrt{\sum_{i = 1}^{n}(x_i - y_i)^2}\)。例如,在二维平面上,点\((1,2)\)\((4,6)\)之间的欧几里得距离为\(\sqrt{(1 - 4)^2+(2 - 6)^2}=\sqrt{9 + 16}=\sqrt{25}=5\)
    • 曼哈顿距离:也称为城市街区距离。对于两个n维向量\(x=(x_1,x_2,\cdots,x_n)\)\(y=(y_1,y_2,\cdots,y_n)\),曼哈顿距离\(d(x,y)=\sum_{i = 1}^{n}\vert x_i - y_i\vert\)。在二维平面中,就像是在街道网格中行走的距离,比如从\((1,1)\)\((3,3)\)的曼哈顿距离是\(\vert1 - 3\vert+\vert1 - 3\vert=4\)
    • 闵可夫斯基距离:它是欧几里得距离和曼哈顿距离的推广。对于两个n维向量\(x=(x_1,x_2,\cdots,x_n)\)\(y=(y_1,y_2,\cdots,y_n)\),闵可夫斯基距离\(d(x,y)=(\sum_{i = 1}^{n}\vert x_i - y_i\vert^p)^{\frac{1}{p}}\),其中\(p\geq1\)。当\(p = 2\)时,它就是欧几里得距离;当\(p = 1\)时,它是曼哈顿距离。
  3. K值的选择
    • K值的大小对模型的性能有很大影响。如果K值较小,模型容易受到噪声数据的影响,产生过拟合。例如,当K = 1时,新数据点的类别完全由最近的一个点决定,若这个最近的点是噪声点,就会导致错误分类。
    • 如果K值较大,模型会变得简单,可能会忽略掉数据中的局部特性,产生欠拟合。例如,在一个数据分布不均匀的数据集里,若K值过大,可能会把新数据分类到错误的多数类中。
    • 通常可以通过交叉验证等方法来选择合适的K值,即把数据集分成训练集和验证集,尝试不同的K值,观察在验证集上的准确率等性能指标,选择使性能最好的K值。
  4. 分类规则
    • 多数表决法(用于分类问题):在找到的K个近邻中,统计每个类别出现的次数,将新数据点分类为出现次数最多的类别。例如,K = 5,近邻中有3个属于类别A,2个属于类别B,那么新数据点就被分类为类别A。
    • 加权投票法:根据近邻点与新数据点的距离赋予不同的权重,距离越近权重越大。比如,距离为\(d_1\)的近邻点权重\(w_1=\frac{1}{d_1}\),然后按照权重统计类别出现的次数来进行分类。这样可以使距离更近的点对分类结果产生更大的影响。
  5. 回归规则(用于回归问题)
    • 简单平均法:对于K个近邻的数值型输出,计算它们的平均值作为新数据点的预测值。例如,K = 4,四个近邻的数值分别是10、12、9、11,那么新数据点的预测值为\((10 + 12+9 + 11)/4 = 10.5\)
    • 加权平均法:类似于加权投票法,根据距离赋予权重,然后计算加权平均值作为预测值。例如,K = 3,近邻的数值分别是8、10、12,距离新数据点的距离分别是1、2、3,权重分别是\(1/1\)\(1/2\)\(1/3\),预测值为\(\frac{(8\times1/1)+(10\times1/2)+(12\times1/3)}{1/1 + 1/2+1/3}\)
  6. 优点
    • 简单直观:算法的原理易于理解,不需要复杂的训练过程,直接根据训练数据进行预测。
    • 对数据分布没有假设:不像一些模型(如高斯分布假设的线性回归),KNN不需要对数据的分布进行假设,适用于各种类型的数据分布。
    • 可以处理多分类问题:在分类任务中,很容易扩展到多个类别,通过多数表决或加权投票来确定类别。
  7. 缺点
    • 计算复杂度高:当数据集很大时,计算新数据点与所有训练数据点的距离会非常耗时。特别是在高维数据情况下,计算量会急剧增加,这被称为“维度灾难”。
    • 需要大量的内存:存储所有的训练数据点来进行距离计算,对于大规模数据集,内存需求较大。
    • 对不平衡数据敏感:如果数据集中不同类别样本数量差异很大,少数类可能会被多数类淹没,导致分类性能下降。例如,在一个数据集里,90%是类别A,10%是类别B,KNN可能会倾向于把新数据分类为类别A。
  8. 应用场景
    • 数据分类:如文本分类,将文档根据内容分类到不同的主题类别;图像识别,判断图像中的物体属于哪一类(如猫、狗等)。
    • 数据预测(回归):例如预测房价,根据附近相似房屋的价格来预测目标房屋的价格;股票价格预测,根据历史上相似市场情况的股票价格来预测当前股票价格。
posted @ 2024-12-24 17:02  软件职业规划  阅读(25)  评论(0编辑  收藏  举报