KNN(k-nearest neighbors)算法入门

KNN定义

  • 在k-NN分类中,输出是一个分类族群。一个对象的分类是由其邻居的“多数表决”确定的,k个最近邻居(k为正整数,通常较小)中最常见的分类决定了赋予该对象的类别。若k = 1,则该对象的类别直接由最近的一个节点赋予。
  • 在k-NN回归中,输出是该对象的属性值。该值是其k个最近邻居的值的平均值。

KNN分类算法流程

因为测试数据每一次都要与全部的训练数据进行比较,所以KNN没有训练算法。

  1. 假设有一个带有标签的样本数据集(训练样本集),其中包含每条数据与所属分类的对应关系。

  2. 输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较。

    i.计算新数据与样本数据集中每条数据的距离。
    ii.对求得的所有距离进行排序(从小到大,越小表示越相似)。
    iii.取前 k (k 一般小于等于 20 )个样本数据对应的分类标签。

  3. 求 k 个数据中出现次数最多的分类标签作为新数据的分类。

KNN分类算法举例

电影可以按照题材分类,那么如何区分 动作片爱情片 呢?

动作片: 打斗次数更多

爱情片: 亲吻次数更多

基于电影中的亲吻打斗出现的次数,使用 k-近邻算法构造程序,就可以自动划分电影的题材类型。
KNN(k-nearest neighbors)算法入门_第1张图片
现在根据上面我们得到的样本集中所有电影与未知电影的距离,按照距离递增排序,可以找到 k 个距离最近的电影。

假定 k=3,则三个最靠近的电影依次是, He’s Not Really into DudesBeautiful Woman
California Man
KNN算法按照距离最近的三部电影的类型,决定未知电影的类型(选取最近的三部电影的分类数目出现最多次为output),而这三部电影全是爱情片,因此我们判定未知电影是爱情片

你可能感兴趣的:(机器学习)