分类算法
KNN
KNN,即K最邻近算法。其与K_means聚类算法可以互为对照。K_means本质上是无监督学习而KNN是监督学习,Kmeans是聚类算法而KNN是分类(或回归)算法。
原理分析:近朱者赤近墨者黑,通过距离的远近来衡量样本之间的差异。
常见计算距离的数学方法:
-
欧几里得距离
-
明科夫斯基距离
明科夫斯基距离是一种对多种距离的概括性描述,为什么是一种概括性描述呢?即当P=2时,明科夫斯基距离其实就是欧氏距离。
-
曼哈顿距离
当P=1时,得到绝对值距离,也称曼哈顿距离。
-
切比雪夫距离
当P接近于无穷大时,得到切比雪夫距离。
-
马氏距离
马氏距离表示点与一个分布之间的距离。 它是一种有效的计算两个未知样本集的相似度的方法。一个均值为μ,协方差矩阵为Σ的多变量向量。
算法思想:如果一个样本在特征空间中的K个最相似(即特征空间中最邻近,用距离公式描述)的样本中的大多数属于某一个类别,则该样本也属于这个类别。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
算法步骤:
- 计算想要分类的点到其余点的距离
- 按距离升序排列,并选出前K(KNN的K)个点,也就是距离样本点最近的K个点
- 加权平均,得到答案