python 机器学习KNN分类算法

来源:互联网 发布:淘宝中老年服装模特 编辑:程序博客网 时间:2024/05/17 17:17

    k近邻算法是机器学习中最简单的算法,其可以做最基本的分类操作,伪代码如下:

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

(1)计算已知类别数据集中的每个点与当前点之间的距离;

(2)按照距离递增次序排序;

(3)选怒与当前点距离最小的k个点

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

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

具体python代码如下:

from numpy import *import operatordef createDataSet():    group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]])    labels = ['A', 'A', 'B', 'B']    return group, labelsdef classify0(inX, dataSet, labels, k):    dataSetSize = dataSet.shape[0]    diffMat = tile(inX, (dataSetSize, 1)) - dataSet    sqDiffMat = diffMat ** 2    sqDistances = sqDiffMat.sum(axis=1)    distances = sqDistances ** 0.5    sortedDistIndicies = distances.argsort()    classCount = {}    for i in range(k):        voteIlabel = labels[sortedDistIndicies[i]]        classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1    sortedClassCount = sorted(classCount.iteritems(),                              key=operator.itemgetter(1), reverse=True)    return sortedClassCount[0][0]if __name__ == '__main__':    group,labels = createDataSet()    result = classify0([1.2,1.5],group,labels,3)    print result

0 0
原创粉丝点击