K-近邻(KNN)
KNN算法是一种非常简单的分类算法。KNN属于懒惰学习(lazy learning),即没有显式的学习过程,也就是说没有训练阶段,数据集事先已有了分类和特征值,待收到新样本后直接进行处理。
简单来说,KNN算法就是找到离自己最近的$K$个邻居,看看邻居之中的多数是哪一类的,那么自己就是他们中的一员了。一般选择$K$为基数,而且尽量不大于$\sqrt n$。
两点之间的距离一般使用欧氏距离:
归一化
在计算不同尺度的数据时,记得对数据进行归一化(normalization),下面介绍三种标准化的方法:
0-1 标准化
Z-score标准化
Sigmoid标准化
代码实现
下面是用python
代码实现:
1 | %matplotlib inline |