1 前言
这几天在看《机器学习实战》一书,买这本书的最首要原因是它里面采用Python来实现,而我这段时间对Python的好感越来越强烈。拿到手后一看,果然很不错,书中对一些经典机器学习算法的解释与实现 阐述的都很通俗。今天把KNN算法看懂了,在些基础上用Python进行了实现,代码主要还是基于书中的示例,我在看明白后,加上了注释。
2 KNN算法的基本原理
KNN属于监督学习,要求事先准备好已知分类结果的数据集(即样本数据),其基本原理较为简单。对于待分类的数据集,将其各特征值与样本数据对应的特征值进行比较,然后提取出样本集中与待分类数据的特征最相近的k个数据所对应的分类结果标注,最后从中找出出现最多的那个标注作为待分类数据的最终分类结果。
3 一个简单的待解决问题
已有数据:
group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
labels=['a','a','b','b']
两组待分类数据:
[1.0,0.8]
[0.5,0.5]
求两组待分类数据分别属于哪一类
4 代码
from numpy import *
import operator
#已有数据,以及对应的标签
group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
labels=['a','a','b','b']
'''