*编辑为包含完整错误堆栈
如果这是一个愚蠢的问题,请原谅我,我完全是个傻瓜。
我正在使用numpy在python中创建一个k近邻分类器。但当我尝试在CIFAR-10图像(重塑为一维阵列(上运行knn_classifier.predict((时,我得到了这个错误。
File "<ipython-input-9-9df7a1ae9044>", line 1
y-pred = knn.predict(x_ts, k=5)
^
SyntaxError: can't assign to operator
当我没有在早期版本的分类器中包含"k"(预测中的方法varibale(时,这种情况就没有发生,所以我假设它与"k"有关,但我不知道我做错了什么。
这是我写的:
class knn_classifier:
def __init__(self):
pass
def train(self, x, y):
self.xtr = x
self.ytr = y
def predict(self, x, k=1):
num_images = x.shape[0]
y_pred = np.zeros(num_images, dtype=self.ytr.dtype)
for i in range(num_images):
distance = np.sum(np.abs(self.xtr - x[i,:]), axis=1)
lowest = np.argsort(distance)
lowest = lowest[:k]
lowest_k = list(self.ytr[lowest])
y_pred[i] = np.argmax(np.bincount(lowest_k))
return y_pred
这只是一个拼写错误。你写了";y-pred";用破折号而不是下划线,Python将其解释为操作y
减去pred
。