k-NN 算法实验

本文详细介绍了k-近邻算法的原理、步骤,包括距离计算、代码实现以及实验对比分析。着重讨论了K值对模型性能的影响,并剖析了KNN算法的优缺点,如简单易用但计算复杂、对异常点不敏感等。
摘要由CSDN通过智能技术生成

目录

1.k-近邻算法概述

1.1 k-近邻算法

1.2 k-近邻算法步骤

1.3 距离公式

2.算法实现步骤

2.1 问题描述

2.2 代码实现过程

2.3 实现结果

3.算法分析

3.1 实验对比分析

3.2 总结


1.k-近邻算法概述

1.1 k-近邻算法

    K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:在特征空间中,如果一个样本附近的k个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。

1.2 k-近邻算法步骤

        1--准备数据,分析数据,对数据进行预处理,归一化处理;

        2--划分训练集和测试集;

        3--计算未知样本和每个训练集样本的距离;

        4--设定参数,k值;

        5--将距离升序排列;

        6--选取距离最小的k个点;

        7--统计前k个最近邻样本点所在类别出现的次数;

        8--多数表决,选择出现频率最大的类别作为未知样本的类别。

1.3 距离公式

       d=x1-x22+(y1-y2)2

2.算法实现步骤

2.1 问题描述

训练集给定一些同学的文科综合与理科综合成绩,通过kNN算法判断给定同学为文科生还是理科生。

2.2 代码实现过程

      1.导入所需数据

      2.选择欧式距离计算已知类别数据集中的每个样本与测试样本之间的距离

      3.对距离按照从小到大的顺序进行排序

      4.选取与测试样本距离最近的 𝑘 个样本

      5.确定前 𝑘 个样本所在类别出现的频率

2.3 实现结果

3.算法分析

3.1 实验对比分析

当k=3时,

当k=5时,

3.2 总结

k值的选择:

在KNN算法中,K值的选择对模型的性能有很大影响:如果K值较小,模型会变得复杂,容易过拟合;如果K值较大,模型会变得简单,但可能欠拟合。

kNN算法优缺点:

       优点:KNN算法理论成熟且思想简单,适用于分类和回归问题;可以处理非线性分类;训练时间复杂度相对较低,尤其是与支持向量机等算法相比;对数据没有假设,因此对异常点不敏感;适用于样本容量较大的类域自动分类,特别是当类域之间交叉或重叠较多时,KNN算法较为适合。

       缺点:KNN算法在计算上较为复杂,特别是在特征数量多的时候;样本不平衡时,对稀有类别的预测准确率较低;建立模型如KD树或球树需要大量内存;相比决策树模型,KNN模型的可解释性较弱。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值