一文读懂KNN、Kmeans

K最近邻算法

K最近邻(K-Nearest Neighbors,KNN)算法是一种分类算法,也是最简单易懂的机器学习算法。应用场景有字符识别,文本分类,图像识别等领域。该算法的思想是:一个样本与数据中的K个样本最相似,如果这K个样本中的大多数属于某一类别,则该样本也属于这个类别。通常k是不大于20的整数。

说明:KNN没有显示的训练过程,它是“懒惰学习”的代表,它在训练阶段只是把数据保存下来,训练时间开销为0,等收到测试样本进行处理。

 接下来对KNN算法的思想总结一下:就是在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类.

KNN算法的优缺点

优点:

  1. 思想简单,易于理解,易于实现
  2. 无需估计参数,无需训练;
  3. 精度高,对异常值不敏感,
  4. 特别适合于多分类问题。

缺点:

  1. 计算复杂度高,空间复杂度高。
  2. 可解释性差。无法给出决策树那样的规则。
  3. 当样本分布不平衡时,新的样本会归类为主导样本,从而不能更好的接近实际分类结果。

注意问题

  • k值的设定

K取值设置过小会降低分类精度;若设置过大,且测试样本属于训练集中包含数据较多的类,则会增加噪声,降低分类效果。通常,K值的设定采用交叉检验的方式。经验规则:k一般低于训练样本数的平方根。

  • 优化问题

压缩训练样本;

确定最终的类别时,不是简单的采用投票法,而是进行加权投票,距离越近权重越高。

  • KNN算法实现步骤:

1)计算测试数据与各个训练数据之间的距离;

2)按照距离的递增关系进行排序;

3)选取距离最小的K个点;

4)确定前K个点所在类别的出现频率;

5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。

1:K近邻算法是基本且简单的分类与回归方法,knn基本做法是:对给定的训练实例点和输入实例点,首先确定输入实例点的k个最近邻实例点数,然后用这k个训练实例点的累的多数预测输入实例点的类

2:knn模型对应于基于数据集对特征空间的一个划分,knn中当训练集、距离度量、k值及分类决策规则确定后,其结果唯一确定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值