机器学习算法:KNN近邻算法,附视频详解和项目源码实操

本文是由**【菜鸟窝】特邀清华人工智能博士亲授,从零开始教你K近邻分类算法**(K-Nearest Neighbor algorithm (short for KNN)),并通过实际项目手把手教会大家进行实操。相关的源码会发给大家实践,让你真正做到学以致用。

视频详解和实操代码可勾搭运营小姐姐(微信id:BT474849)免费领取哦。
机器学习算法:KNN近邻算法,附视频详解和项目源码实操
机器学习算法:KNN近邻算法,附视频详解和项目源码实操

相似性度量

相似性度量: • 距离,距离越小越相似
• 相似系数,相似系数越大越相似。
• 样品之间的距离和相似系数有着各种不同的定义,
而这些定义与变量的类型有着非常密切的关系。

一、距离

• 设x =(x1,x2,⋯,xp
)′ 和y =(y1,y2,⋯,yp
)′为两个样本,
则所定义的距离一般应满足如下三个条件:

非负性:d(x, y)≥0,d(x, y)=0当且仅当x=y;
对称性:d(x, y)=d(y, x);
三角不等式:d(x, y)≤d(x, z) + d(z, y)。

常见的距离函数
• 欧氏距离
• 曼哈顿距离
• 马氏距离
•…

1、欧式距离
机器学习算法:KNN近邻算法,附视频详解和项目源码实操
2、曼哈顿距离
• 曼哈顿距离(Manhattan distance) 为两个点上在标
准坐标系上的绝对轴距之总和。
• 具体定义为:两个向量???? = (????1, ????2, … , ????????)和y = (????1, ????2, … , ????????) ,那么它们之间的曼哈顿距离为

机器学习算法:KNN近邻算法,附视频详解和项目源码实操
例如在二维平面上,坐标(x1, y1)的点P1与坐标(x2, y2)的点P2的曼哈顿距离为:
机器学习算法:KNN近邻算法,附视频详解和项目源码实操
机器学习算法:KNN近邻算法,附视频详解和项目源码实操
3、马氏距离
• x和y之间的马氏距离为

机器学习算法:KNN近邻算法,附视频详解和项目源码实操

马氏距离的直观理解
机器学习算法:KNN近邻算法,附视频详解和项目源码实操

二、相似系数

• 相似系数越大,认为变量之间的相似性程度就越
高;反之,则越低。
• 变量间相似系数一般应满足的条件

机器学习算法:KNN近邻算法,附视频详解和项目源码实操

常见的相关性系数
• 夹角余弦
• 皮尔逊相关系数
• …

1、夹角余弦(衡量向量夹角)
• 两向量间的角度又称cosine相关系数。两个n维
向量间的角度距离为:
机器学习算法:KNN近邻算法,附视频详解和项目源码实操
其中,分子为两个向量的点积,分母为两个向量模的积余弦取值范围为[-1,1] • 夹角越小,趋近于0度,余弦值越接近于1,向量方向越吻合,则越相似。• 夹角为90度,两向量正交,余弦值为0时。• 夹角180度,两个向量的方向完全相反,夹角余弦取最小值-1。

2、皮尔逊相关系数
• 皮尔逊相关系数的计算公式如下,结果是一个在
-1与1之间的系数。该系数用来说明两个样本间
联系的强弱程度。
机器学习算法:KNN近邻算法,附视频详解和项目源码实操
相关系数的分类
• 0.8-1.0 极强相关
• 0.6-0.8 强相关
• 0.4-0.6 中等程度相关
• 0.2-0.4 弱相关
• 0.0-0.2 极弱相关或无相关
• -1.0-0.0 负相关

三、K近邻分类算法

1-Nearest Neighbor
• 所有最简单机器学习分类器中的一种
• 基本思想: label a new point the same as the
closest known point
机器学习算法:KNN近邻算法,附视频详解和项目源码实操
2、距离指标

不同的指标可以改变决策面
机器学习算法:KNN近邻算法,附视频详解和项目源码实操
对1-NN进行扩展以消除标签中的噪音
• 对新节点分配与其最近的K个节点中最多出现的标签
机器学习算法:KNN近邻算法,附视频详解和项目源码实操
例子:KNN分类器
机器学习算法:KNN近邻算法,附视频详解和项目源码实操
相似度度量:匹配属性的数量 (k=2)
•新例子:
• 例1 (great, no, no, normal, no) Yes
最相似: number 2 (1个不匹配,4个匹配)  yes
第二个最相似的例子: number 1 (2个不匹配, 3个匹配)  yes
• 例2 (mediocre, yes, no, normal, no) Yes/No
最相似:number 3 (1个不匹配, 4个匹配)  no
第二个最相似的例子: number 1 (2个不匹配,3个匹配)  yes
机器学习算法:KNN近邻算法,附视频详解和项目源码实操
KNN的优点和缺点
• +算法设计简单、易于实现
• - 分类很耗时
• - 分类精度较低

视频详解和实操代码、具体项目文档 可勾搭运营小姐姐(微信id:BT474849)免费领取。