在 Python 中使用 KNN 预测标签

Predicting label with KNN in Python

我正在尝试使用 KNN 预测正确的标签;但由于某种原因,它不起作用。有人可以告诉我做错了什么吗?

def eucledian_dist(dist1, dist2):
  return(np.sqrt(np.sum((dist1- dist2)**2)))

def knn(val, k, train, labels):
    distances = [eucledian_dist(val, img) for img in train]
    nearest = np.argsort(distances)[:k]
    class = np.bincount(labels[nearest])
    prediction = np.argmax(class)
    return prediction

您不能将 class 用作变量的名称,因为它用于定义 class in Python

您始终可以在代码中更改它并选择其他名称。或者有一种通用的方法来使用它。只需在关键字末尾添加 _,例如:class_.