①【万字详解·附代码】机器学习分类算法之K近邻(KNN)

简介: 【万字详解·附代码】机器学习分类算法之K近邻(KNN)

k-NN 算法最简单的版本只考虑一个最近邻,也就是与我们想要预测的数据点最近的训练,数据点。预测结果就是这个训练数据点的已知输出。


image.png


什么是K近邻算法?

KNN的全称是K Nearest Neighbors,意思是K个最近的邻居,从这个名字我们就能看出一些KNN算法的蛛丝马迹了。K个最近邻居,毫无疑问,K的取值肯定是至关重要的。那么最近的邻居又是怎么回事呢?其实啊,KNN的原理就是当预测一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别。


简单来说就是根据“距离”进行判别,看一下下面的示例图,也许你就懂了。


image.png


图中绿色的点就是我们要预测的那个点,假设K=3。那么KNN算法就会找到与它距离最近的三个点(这里用圆圈把它圈起来了),看看哪种类别多一些,比如这个例子中是蓝色三角形多一些,新来的绿色点就归类到蓝三角了


在介绍KNN算法的原理前,首先先介绍一些基本的概念


image.png


关于空间的一些基本概念

几何空间的五条公理

1.从一点向另一点可以引一条直线。

2.任意线段能无限延伸成一条直线。

3.给定任意线段,可以以其一个端点作为圆心,该线段作为半径作一个圆。

4.所有直角都相等。

5.若两条直线都与第三条直线相交,并且在同一边的内角之和小于两个直角,则这两条直线在这一边必定相交


向量空间又分为下面三种:


image.png


维度


image.png


向量

空间中具有大小和方向的量叫做空间向量

我们可以想象我们我们所分析的数据的每一个属性视为一个向量维度,我们输入的数据其实是某个高维向量空间中的一个点



关于距离的一些基本概念

很多基于向量空间的分类器在分类决策时用到距离的概念。

1、欧氏距离(Euclidean distance)

2、曼哈顿距离(Manhattan Distance)

3、切比雪夫距离 (Chebyshev Distance)

4、闵可夫斯基距离(Minkowski Distance)

5、杰卡德距离(Jaccard Distance)

6、余弦距离(Cosine Distance)

7、相关距离(Correlation distance)

8、汉明距离(Hamming Distance)


欧氏距离(Euclidean distance

两个点在空间中的最短直线距离


image.png


image.png


曼哈顿距离(Manhattan Distance)

又称 “城市街区距离”(City Block distance)或“出租车距离”,指从一个十字路口开车到另一个十字路口的驾驶距离,显然不是两点间直线距离。


image.png


(1) 二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离:


image.png


(2) n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的曼哈顿距离:


image.png


切比雪夫距离 (Chebyshev Distance)

国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?这个距离就叫切比雪夫距离。




image.png


闵可夫斯基距离(Minkowski Distance)

闵氏距离不是一种距离,而是一组距离的定义,是对多个距离度量公式的概括性的表述。


两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:


image.png


其中p是一个变参数:

当p=1时,就是曼哈顿距离;

当p=2时,就是欧氏距离;

当p→∞时,就是切比雪夫距离。


image.png

杰卡德距离(Jaccard Distance)

杰卡德相似系数(Jaccard similarity coefficient):两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示:


image.png


杰卡德距离(Jaccard Distance):与杰卡德相似系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度:


image.png


杰卡德相似系数和杰卡德距离的用途


可将杰卡德相似系数用在衡量样本的相似度上。

假设:样本A与样本B是两个n维向量,而且所有维度的取值都是0或1。例如:A(0111)和B(1011)。我们将样本看成是一个集合,1表示集合包含该元素,0表示集合不包含该元素。那么样本A与B的杰卡德相似系数可以表示为:


image.png


杰卡德距离等于1-J


说明:


P:样本A与B都是1的维度的个数


q:样本A是1,样本B是0的维度的个数


r:样本A是0,样本B是1的维度的个数


s:样本A与B都是0的维度的个数


相关文章
|
1天前
|
机器学习/深度学习 分布式计算 并行计算
【机器学习】怎样在非常大的数据集上执行K-means算法?
【5月更文挑战第13天】【机器学习】怎样在非常大的数据集上执行K-means算法?
|
1天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】列举几种情况,在这些情况下K-means算法难以取得较好效果
【5月更文挑战第13天】【机器学习】列举几种情况,在这些情况下K-means算法难以取得较好效果
|
1天前
|
机器学习/深度学习 传感器 算法
【机器学习】在聚类算法中,使用曼哈顿距离和使用欧式距离有什么区别?
【5月更文挑战第12天】【机器学习】在聚类算法中,使用曼哈顿距离和使用欧式距离有什么区别?
|
1天前
|
数据采集 机器学习/深度学习 人工智能
【机器学习】在使用K-means算法之前,如何预处理数据?
【5月更文挑战第12天】【机器学习】在使用K-means算法之前,如何预处理数据?
|
1天前
|
机器学习/深度学习 算法 数据可视化
【机器学习】比较分层聚类(Hierarchical Clustering)和K-means聚类算法
【5月更文挑战第12天】【机器学习】比较分层聚类(Hierarchical Clustering)和K-means聚类算法
|
1天前
|
机器学习/深度学习 数据采集 算法
深入理解并应用机器学习算法:支持向量机(SVM)
【5月更文挑战第13天】支持向量机(SVM)是监督学习中的强分类算法,用于文本分类、图像识别等领域。它寻找超平面最大化间隔,支持向量是离超平面最近的样本点。SVM通过核函数处理非线性数据,软间隔和正则化避免过拟合。应用步骤包括数据预处理、选择核函数、训练模型、评估性能及应用预测。优点是高效、鲁棒和泛化能力强,但对参数敏感、不适合大规模数据集且对缺失数据敏感。理解SVM原理有助于优化实际问题的解决方案。
|
1天前
|
机器学习/深度学习 算法
理解并应用机器学习算法:决策树
【5月更文挑战第12天】决策树是直观的分类与回归机器学习算法,通过树状结构模拟决策过程。每个内部节点代表特征属性,分支代表属性取值,叶子节点代表类别。构建过程包括特征选择(如信息增益、基尼指数等)、决策树生成和剪枝(预剪枝和后剪枝)以防止过拟合。广泛应用在信贷风险评估、医疗诊断等领域。理解并掌握决策树有助于解决实际问题。
|
1天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】在使用K-means聚类算法时,如何选择K的值?
【5月更文挑战第11天】【机器学习】在使用K-means聚类算法时,如何选择K的值?
|
1天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】为什么K-means算法使用欧式距离度量?
【5月更文挑战第11天】【机器学习】为什么K-means算法使用欧式距离度量?
|
1天前
|
机器学习/深度学习 算法 数据可视化
【机器学习】描述K-means算法的步骤
【5月更文挑战第11天】【机器学习】描述K-means算法的步骤

热门文章

最新文章