机器学习 实验一 KNN

K-邻近算法(KNN)

原理

KNN是最简单的分类算法之一,也是最常用的分类算法之一,KNN算法是有监督学习中的分类算法。
KNN算法的基本法则是:相同类别的样本之间在特征空间中应当聚集在一起,也就是说当要预测一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别。

算法流程在这里插入图片描述

具体如下图所示:
图中绿色点为我们要预测的值,当K值等于三时,算法判断离绿色点最近的三个图形中哪一类图形最多就将新预测的点归为哪一类。
在这里插入图片描述

当K值改变时,预测结果也会发生改变,如若当K=5,预测的结果变成红色的圆(如下图所示),由此可见,K值的选择在KNN算法中起着至关重要的作用
在这里插入图片描述

K值的选择

不同k值的影响

一般来说,从K=1开始,随着K的逐渐增大,K近邻算法的分类效果会逐渐提升;在增大到某个值以后,随着K的进一步增大K近邻算法的分类效果会逐渐下降。
K值较小,相当于用较小的邻域中的训练实例进行预测,只有距离近的(相似的)起作用。因此会有如下影响:
·单个样本影响大
·噪声敏感
·整体模型变得复杂,r容易发生过拟合
K值较大,这时距离远的(不相似的)也会起作用。因此会有如下影响:
·近似误差会增大,但估计误差会减小
·整体模型变得简单

K值选择

·一般k值较小。
·k通常取奇数,避免产生相等占比的情况。
·往往需要通过“交叉验证(Cross Validation)”等方法评估模型在不同取值下的性能,进而确定具体问题的K值。

案例实现(课本实验)

电影类别分类

代码
from numpy import *
import operator

def createDataSet():
    group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
    labels = ['A','A','B','B'
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值