首页 > 解决方案 > 找到计算 1NN 的有效方法

问题描述

试图找到一个测试集向量与整个火车集之间的最小距离,我有一个非常直观的计算它的函数,但是当我想将它计算到整个测试集时,它需要我很多时间,做您对实现它有一些想法(也许使用 CUDA,它是否可以帮助 GPU 功能)?

#testX - test set - numpy.ndarray(flatten img's)
#trainX - train set -numpy.ndarray(flatten img's)

ans = []

def metric(test, train):
    return np.linalg.norm(test-train,np.inf) 

def serch_min_dist(test):
    return  min((metric(test, train), i) for i, train in enumerate(trainX))

for i in range(len(testX)) : # for each test instance
    minimum_d = serch_min_dist(testX[i], label)[0]
    ans.append(minimum_d)



标签: pythonmachine-learningcomputer-sciencemetricsknn

解决方案


推荐阅读