随记·手撕coding | knn

有监督学习算法,训练数据有标签

⭐原理:

  • 1、计算测试数据与各个训练数据之间的距离(欧氏距离、曼哈顿距离、余弦相似度)
  • 2、按照距离大小升序排序
  • 3、选取距离最小的前k个点(k的值需要事先设定)
  • 4、确定前k个点所在类别的出现频率
  • 5、返回前k个点中出现频率最高的类别作为测试数据的预测分类

注:对于步骤5,有2种方法:

  • 1、多数表决法:前k个里选类别最多的种类作为测试样本
  • 2、加权表决法:根据距离的远近,对近邻的投票进行加权,距离越近权重越大,通过权重计算结果最大值的类作为测试样本的类别。
import numpy as np
import collections

class KNN:
    def __init__(self, x_train,

你可能感兴趣的:(算法岗面试,knn,nlp,ml,ai,cv)