Python实现KNN算法的步骤如下:计算已知类别数据集中的点与当前点之间的距离。
Python实现KNN算法的步骤如下:
1、计算已知类别数据集中的点与当前点之间的距离。
2、按照距离递增次序排序。
3、选取与当前点距离最小的k个点。
4、确定前k个点所在类别的出现频率。
5、返回前k个点出现频现最高的类别作为当前点的分类。
以下是Python实现KNN算法的代码:
from numpy import *
import operator
# 创建数据集
def createDataSet():
group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]])
labels = ['A', 'A', 'B', 'B']
return group, labels
# KNN算法
def 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.items(), key=operator.itemgetter(1), reverse=True)
return sortedClassCount[0][0]
# 测试算法
group, labels = createDataSet()
print(classify0([0, 0], group, labels, 3))
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(45条)