KNN算法原理

KNN(K-Nearest Neighbors,K最近邻)算法是一种基本且广泛使用的分类与回归方法。在分类任务中,KNN的输入为实例的特征向量,对应于特征空间的点;输出为实例的类别,可以取为类别集合中任意一个类别。KNN算法的核心思想是:给定一个测试样本,基于某种距离度量找出训练集中与其最靠近的K个训练样本,然后基于这K个“邻居”的信息来进行预测。

KNN是机器学习中最为简单和经典的一个算法。

目录

1.KNN算法概述

2. 算法原理

1.. 步骤

3. 优缺点

        优点:

        缺点︰

4. 改进方法


1.KNN算法概述

  1. 距离度量:首先需要有一个衡量样本之间相似度的标准,常用的距离度量包括欧氏距离、曼哈顿距离、闵可夫斯基距离等。在KNN中,通常使用欧氏距离来作为度量标准。

        2.K值选择:K是一个重要的超参数,表示在预测过程中要考虑的最近邻的个数。K值的选择                对结果产生重大影响。如果K值过小,模型对噪声数据非常敏感,容易发生过拟合;如果K            值过大,模型会变得简单,容易欠拟合。

        3.投票机制:对于分类任务,KNN采用多数投票法来预测测试样本的类别。即,将测试样本            的K个最近邻的类别进行统计,出现次数最多的类别即为该测试样本的预测类别。

        4.加权投票:在一些情况下,可以根据距离的不同对K个邻居的投票进行加权,距离越近的邻          居权重越大,这样可以使预测结果更加合理。

2. 算法原理

基本思想: KNN算法的核心思想是通过计算样本间的距离,基于训练集中最接近的K个邻居的标签来预测新样本的标签。在分类任务中,KNN算法预测新样本的类别为其K个最近邻样本中最常见的类别;在回归任务中,KNN算法预测新样本的值为其K个最近邻样本值的平均值。

1.. 步骤

  1. 选择K值

    • 选择一个合适的K值(通常是奇数,以避免出现平局),这是算法的一个超参数。
  2. 计算距离

    • 对于新样本,计算其与训练集中所有样本的距离。常用的距离度量包括欧几里得距离、曼哈顿距离和闵可夫斯基距离。
  3. 选择K个最近邻

    • 根据计算的距离,将训练集中离新样本最近的K个样本选出来。
  4. 预测标签

    • 分类任务:统计K个邻居中每个类别的出现次数,将新样本的类别预测为出现次数最多的类别。
    • 回归任务:计算K个邻居的平均值,将其作为新样本的预测值。

KNN算法示例图中根据形状指代不同类型的数据

给出一个数据通过KNN算法计算,视图中的模型数据会被K值影响

3. 优缺点

        优点:

                 1.简单,易于理解,易于实现,无需训练;

                 2.适合对稀有事件进行分类;

                 3.对异常值不敏感。

        缺点︰

                 1.样本容量比较大时,计算时间很长;

                 ⒉.不均衡样本效果较差;

4. 改进方法

距离度量改进

  • 使用加权距离:对邻居的距离进行加权,距离越近的样本权重越大,从而减少远离样本的影响。
  • 特征缩放:在特征的尺度差异较大的情况下,对特征进行标准化或归一化处理,以提高算法性能。

K值选择

  • 使用交叉验证:通过交叉验证选择最优的K值,避免过拟合或欠拟合。

高维数据处理

  • 使用降维技术(如PCA)减少特征维度,以降低计算复杂度和提高预测性能。

KNN算法在处理小规模数据集时表现良好,但在大规模数据集或高维数据中可能会遇到挑战。在这些情况下,可能需要考虑其他更复杂的机器学习算法。

  • 30
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值