ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【机器学习:KNN算法/K近邻算法】

2022-07-15 22:04:21  阅读:168  来源: 互联网

标签:KNN 训练 近邻 距离 instance 算法 数据


K 近邻算法

算法情况解读

KNN算法的基本思想是物以类聚,人以群分,它是一种贪心算法,可以用于做分类/回归任务。KNN算法认为,距离相近的实例(instance)总是具有类似的性质x,这意味着它们会有相似的标签y。
image
KNN 基于训练集划分好实例的存储范围,KNN分类的时候就直接判断新的instance所属于的存储范围的标签,如果是回归,就用内差法来输出。为了输出明确的结果,k的选择一般用奇数,采用多数投票决定的情况,避免Tie(平票)的情况,如果出现,就再丢一个铜板来决定最终新instance属于的类别。
image
这个图是k = 1 的时候划分出的决策边界。
image

基于线性回归的决策边界
image
基于KNN的k = 15时划分出的决策边界
image
基于KNN的k = 1时划分出的决策边界,k = 1 虽然在训练集表现好,但是要注意避免过拟合现象。
image

优化计算

当训练集数量很大的时候,我们要基于存储范围对新instance分类,需要遍历每一个训练数据样本,计算其与instance的距离,然后取最近的作为最终结果,这种计算非常耗费资源,因此出现了一些优化方式。
思路一:取出代表性的点,在训练的时候构建 condense set,最终存储的也是condense set,只留下了最具代表性的点,算法如下:
image
思路二:构建KD Tree,KD树的基本形式是根据训练结果,将空间划分为多个子区域,根据子区域的特点完成标签判定。

距离度量

当属性之间的数值差异较大的时候,为了避免某一属性对距离的计算产生不符实际的过多的影响时,应当考虑对属性内的数据进行标准化。例如收入数据和支出数据,人们的收入数据差异会非常大,而支出数据往往差距较小,如果不进行标准化,收入数据将会对模型结果判断产生较多的影响,造成一定的偏差。
正态分布的标准化,结果分布在区间[-1,1]
image
最大最小标准化,结果分布在区间[0,1]
image
除了传统的二范数、切比雪夫等距离度量方式,也有学者提出了如下这种学习式的距离度量方法。
image

标签:KNN,训练,近邻,距离,instance,算法,数据
来源: https://www.cnblogs.com/arkon/p/16482443.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有