我正在kaggle上使用KNN对MNSIT数字进行分类,但最后一步要花很多时间来执行,mnsit数据突出了15 mb,就像我还在等待,您能否指出我代码中的任何问题,谢谢。

import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)

import os
print(os.listdir("../input"))
#Loading datset

train=pd.read_csv('../input/mnist_test.csv')

test=pd.read_csv('../input/mnist_train.csv')

X_train=train.drop('label',axis=1)

y_train=train['label']

X_test=test.drop('label',axis=1)

y_test=test['label']

from sklearn.neighbors import KNeighborsClassifier

clf=KNeighborsClassifier(n_neighbors=3)

clf.fit(X_train,y_train)

accuracy=clf.score(X_test,y_test)

accuracy

最佳答案

您的代码本身没有任何问题。 KNN只是一个慢速算法,它对您来说较慢,因为计算图像之间的距离很难成比例,而对您来说则较慢,因为问题足够大,无法真正有效地使用缓存。

无需使用其他库或编写自己的GPU内核,您可以通过替换以下组件来提高速度

clf=KNeighborsClassifier(n_neighbors=3)




clf=KNeighborsClassifier(n_neighbors=3, n_jobs=-1)


至少使用您所有的核心。

关于machine-learning - KNN分类器即使在GPU上也花费太多时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51693501/

10-12 21:12