python写机器学习KNN简单算法
时间: 2023-06-29 18:13:13 浏览: 137
以下是使用Python实现KNN算法的简单代码,代码实现了分类任务中的KNN算法:
```python
import numpy as np
import operator
def KNNClassify(testData, dataSet, labels, k):
# 计算测试数据与各个训练数据之间的距离
dataSetSize = dataSet.shape[0]
diffMat = np.tile(testData, (dataSetSize, 1)) - dataSet
sqDiffMat = diffMat ** 2
sqDistances = sqDiffMat.sum(axis=1)
distances = sqDistances ** 0.5
# 选取距离最近的k个点
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]
```
代码中,`testData`表示测试数据,`dataSet`表示训练数据,`labels`表示训练数据的标签,`k`表示选取的最近邻数。首先,计算测试数据与各个训练数据之间的距离,然后选取距离最近的k个点,最后根据多数表决法确定测试数据的分类结果。
阅读全文