加载数据库等等
计算距离
这个是求最近的1个值
我现在想把上面求1个值改成返回K个最邻值 要如何写?
可以麻烦写下代码轮廓么
加载数据库等等
计算距离
可以麻烦写下代码轮廓么
假如计算K个最近邻,在循环里面在计算dist距离时,刚开始K个循环,都要保存下来,从K+1之后,如果距离dist小于前面保存的最大的,就把它替换掉,这样代码的效率会比较高。
下面是代码, 望采纳!
def _predict_item(self, item, K):
best_labelK = []
best_distK = []
n=0
for i in range(len(train_data)):
dist = self.metric(train_data[i], item)
n = n + 1
if n<=K:
best_distK.append(dist)
best_labelK.append(self.train_labels[i])
else:
if dist < max(best_distK):
update_index = best_distK.index(max(best_distK))
best_distK(update_index) = dist
best_labelK(update_index) = self.train_labels[i]
return best_labelK