首页 > 解决方案 > 在 Python 中使用 KNN 预测标签

问题描述

我正在尝试用 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

标签: pythonknn

解决方案


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

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


推荐阅读