k-近邻算法实现分类器

  1. k-近邻算法介绍
    k-近邻算法(kNN)是采用测试不同特征值之间的距离方法进行分类。工作原理:存在一个样本数据集(训练样本集),并且样本集中每组数据都存在分类标签,当输入没有标签的新数据后,将新数据的每个特征与样本集中的数据对应特征进行比较,然后算法提取样本集中特征最相似数据的前K个(最近邻)的分类标签,行啊unzek个最相似数据中出现次数最多的分类,作为新数据的分类。我们距离的计算一般用欧氏距离,二维平面中(比较直观),d就等于2个点之间的距离,即d=sqrt((x1-x2)^2+(y1-y2)^2),三维立体中,d=sqrt((x1-x2)^2+(y1-y2)^2+(z1-z2)^2),扩展至多维空间,d=sqrt( ∑(xi1-xi2)^2 ) 这里i=1,2..n。
  2. k-近邻算法计算步骤
    1. 归一化所有的特征数据(newValue=(oldValue - min)/(max - min)),确保特征值取值范围为[0, 1]
    2. 计算已知类别数据集中的点与当前需要计算的点的距离
    3. 按照距离递增次序排序
    4. 选取与当前点距离最小的k个点
    5. 确定前k个点所在的类别出现的频率
    6. 返回前k个点出现频率出现最高的类别作为当前点的预测分类
  3. k-近邻算法的优缺点
    根据计算步骤我们可以得知该算法的优缺点
    优点:
            精度一般较高、对异常值不敏感、无数据输入的假定
    缺点:
            当数据量很大时需要计算每个点的距离取前k个值,计算复杂度和空间复杂度都比较高
  4. 该算法比较简单,就不贴代码了

你可能感兴趣的:(machine,learning,分类算法)