knn这个分类器,原理很简单,可以说是机器学习里面最简单的一个分类器。
工作原理:存在一个训练样本集,这些样本集都是有标签,也就是我们知道样本集中每个数据与其类别的对应关系。输入没有标签的新数据后,将新数据与样本集的数据特征进行比较,然后按照特定算法提取样本集中最相似的数据分类标签。举个例子:
电影名称 打斗镜头 接吻镜头 电影类型
california 3 100 爱情片
kevin longbal 101 10 动作片
beautiful 1 80 爱情片
he likes flying 2 100 爱情片
robo slayer 99 5 动作片
ok,大概就举这么多例子,这里有5个电影,给出了两个特征就是打斗镜头和接吻镜头的数量,最后每个样本都有标签分类是爱情片还是动作片。好的,现在我手头有一个电影,比如是taitanic,我知道接吻镜头90个,打斗镜头10个,采用knn怎么去知道这部电影是爱情片还是动作片?计算这部电影与样本集中所有电影的距离,然后递增排序,设定k值,找出这K个电影属于类别最多的作为titanic的分类标签。
计算步骤如下:
1)算距离:给定测试对象,计算它与训练集中的每个对象的距离