我正在使用MNIST数据集,每个784像素60000点。我有一个10000点的测试集,当然还有相同的像素数。
我正在试图找出Matlab中最有效的方法(除了使用内置的拟合函数),以确定此测试集上K = 1的KNN。我按顺序循环遍历每个测试点,然后计算从该特定数字到一个函数(pdist2
)中所有其他数字的距离,但这似乎仍然不够快。这样做大约需要3秒才能通过10个数据点。那么我怎样才能对循环数字部分进行矢量化呢?
例如,试图摆脱这个循环:
[testRows, ~] = size(X_test);
for r=1:testRows
digit = X_test(r,:);
distance = pdist2(digit,X_train,'euclidean');
end