1.KNN算法的个人理解
个人感觉KNN算法(K-NearestNeighbor)一种极其简单粗暴的分类方法,举一个例子,比如说你想知道一个人是不是喜欢打游戏,就可以观察他最亲密的几个朋友是不是都喜欢打游戏,如果大多数都喜欢打游戏,可以推测这个人也喜欢打游戏。KNN就是基于这种有点“物以类聚,人以群分”的简单粗暴的想法来进行分类的。
2.KNN核心思想
在给定一个训练数据集,再给定一个需要作出预测的数据,然后再在训练数据集中寻找k(这个就是KNN的K的由来)个与待预测数据最近(通常我们可以取欧氏距离作为距离的度量)的数据。最后选取k个数据中出现最多的分类作为待预测数据的分类。
欧氏距离:
3.KNN的实现代码
def KNN(inpudata,data_matrix,label_matrix,k):
'''
:param inpudata: 待预测的数据
:param data_matrix: 数据集
:param label_matrix: 数据集的标签
:param k: 寻找的近邻数
:return: 分类的结果
'''
datalen=data_matrix.shape[0]
inpudata=np.tile(inpudata,(datalen,1))#海伦约会的例子将数据变成(datalen,3)
sub&#