我的机器学习之路-KNN算法
一、 K近邻算法
k-近邻(k-Nearest Neighbour,简称KNN)是一种基本分类与回归方法,属于是有监督学习中的分类算法。
二、 算法介绍
2.1 思路
k近邻算法的输入为实例的特征向量,对应于特征空间的点;输出为实例的类别,可以取多类。k近邻法假设给定一个训练数据集,其中的实例类别已定。分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。因此k近邻法不具有显示的学习过程。k近邻法实际上利用训练数据集对特征向量空间进行划分,并作为其分类的“模型”。
2.2 距离计算
特征空间中两个实例点的距离是两个实例点相似程度的反映。k近邻模型的特征空间一般是n维实数向量空间Rn。使用的距离是欧式距离,也可以是其它距离。
2.2.1 数学公式
欧拉公式:
二维空间:
( x m − x n ) 2 + ( y m − y n ) 2 \sqrt{(x^m-x^n)^2+(y^m-y^n)^2} (xm−xn)2+(ym−yn)2
如果在三维空间,就多了个z轴:
( x m − x n ) 2 + ( y m − y n ) 2 + ( z m − z n ) 2 \sqrt{(x^m-x^n)^2+(y^m-y^n)^2+(z^m-z^n)^2} (xm−xn)2+(ym−y