zoukankan      html  css  js  c++  java
  • K-近邻算法

    对于未知类别属性的数据集中的每个点依次执行一下操作:

    (1)计算已知类别中的点与当前点的距离

    (2)按照距离递增的次序进行排序

    (3)选取与当前点距离最小的K个点

    (4)确定前K个点所在类别出现的频率

    (5)返回前K个点出现频率最高的类别作为当前预测的分类

    基本的算法实现:

     1 from numpy import *
     2 import operator
     3 
     4 def createDataSet():
     5     group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
     6     labels=['A','A','B','B']
     7     return group,labels
     8 
     9 
    10 def classify0(inx,dataSet,labels,k):
    11     dataSetSize=dataSet.shape[0]
    12 
    13     diffMat=tile(inx,(dataSetSize,1))-dataSet
    14     sqDiffMat=diffMat**2
    15     sqDistances=sqDiffMat.sum(axis=1)
    16     distance=sqDistances**0.5
    17     sortedDisIndicies=distance.argsort()
    18     classCount={}
    19 
    20     for i in range(k):
    21         voteIlabel=labels[sortedDisIndicies[i]]
    22         classCount[voteIlabel]=classCount.get(voteIlabel,0)+1
    23     sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)
    24     return sortedClassCount[0][0]
    View Code

    classify0()输入:用于分类的输入向量inx,输入的训练样本集dataSet,标签向量labels,选择最近邻居的数目k

    关于sorted:http://www.cnblogs.com/65702708/archive/2010/09/14/1826362.html

    归一化数值:

    newValue=(oldValue-minVals)/(maxValues-minValues)

  • 相关阅读:
    数据库客户端们
    tcl调用tuxedo的一个demo
    tcl实现http请求
    CHAP算法C++实现
    归一化数值
    PPPoE名词解释
    Prism MEF example
    为什么我们要开源
    WPF Issues
    WPF & EF & Prism useful links
  • 原文地址:https://www.cnblogs.com/wolf940509/p/6354175.html
Copyright © 2011-2022 走看看