matlabKNN多分类
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