即使在 GPU 上,KNN 分类器也花费太多时间

0 machine-learning knn

我正在 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
Run Code Online (Sandbox Code Playgroud)

Han*_*ave 6

您的代码本身没有任何问题。KNN 只是一种缓慢的算法,它对您来说较慢,因为计算图像之间的距离在规模上很困难,而对您来说则较慢,因为问题大到您的缓存无法真正有效地使用。

无需使用不同的库或编码您自己的 GPU 内核,您可能可以通过替换来获得速度提升

clf=KNeighborsClassifier(n_neighbors=3)
Run Code Online (Sandbox Code Playgroud)

clf=KNeighborsClassifier(n_neighbors=3, n_jobs=-1)
Run Code Online (Sandbox Code Playgroud)

至少使用你所有的核心。