首页 > 技术文章 > matlabKNN多分类

feynmania 2020-05-21 19:13 原文

1.KNN简介:

KNN:(K nearest neighbor)也叫K近邻算法,主要用于处理机器学习中的分类问题。

 

2.算法思想:统计得到距离目标点最近的K个点中个数最多某个标签,作为目标点的类标签。

即假设给定k=8,计算每个样本点对测试点的距离,并从小到大排序,选出前8个样本点,统计得出前8个样本中有5个属于第一类,2个属于第二类,1个属于第三类,则目标点可归为第一类。【这就是多数表决的概念】

 

3.KNN三要素:距离度量(根据特征选择),K值选择,决策规则(比如上述的多数表决规则)

3.1关于距离选择:

1)闵可夫斯基距离:可分为三种。空间(欧式距离);路径(曼哈顿距离);国际象棋国王?(切比雪夫距离);

2)加权:标准化欧式距离

3)排除量纲和依存:马氏距离;

4)向量差距:夹角余弦;

5)编码差别:汉明距离;

6)集合近似度:杰卡德类似系数与距离;

7)相关:相关系数与距离

3.2关于k值选择:

k值与近似误差成正相关,与估计误差成负相关,(一般选择5~10左右?)

近似误差和估计误差的形象理解:

k取3,k较小,相当于只度量目标点周围最近的3个样本点,目标点对这三个节点的信任度高,近似误差低。但是k取3对噪声点敏感。

k取8,k较大,相当于度量了目标点周围最近的8个样本点,因为参考了多个节点的信息,所以这种情况下对噪声点和错误数据点等等不敏感,估计误差小。

3.3关于决策规则:

一般有全体一致(一票否决制)和多数表决两种方式。

 

4.KNN和K-means对比(有监督/无监督)

 

参考资料:

1.KNN_matlab代码:https://blog.csdn.net/queyuze/article/details/70195087?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase, 作者:新青年hans

2.概念理解:https://blog.csdn.net/weixin_40657079/article/details/82958976

3.K近邻python简单示例:https://www.cnblogs.com/eczhou/p/7860462.html

4.距离选择:https://blog.csdn.net/weixin_40657079/article/details/82958976,作者:weixin_40657079

 

推荐阅读