我在kaggle上使用KNN对MNSIT数字进行分类,但在最后一步,它需要很多时间来执行,mnsit数据是15MB,就像我仍然在等待一样,你能指出我代码中的任何问题吗,谢谢。
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发布于 2018-08-05 19:40:54
你的代码本身没有任何问题。KNN只是一个缓慢的算法,它对你来说很慢,因为计算图像之间的距离在规模上很难,对你来说也很慢,因为问题太大了,你的缓存不能真正有效地利用。
在不使用不同的库或编写自己的GPU内核的情况下,您可以通过替换
clf=KNeighborsClassifier(n_neighbors=3)使用
clf=KNeighborsClassifier(n_neighbors=3, n_jobs=-1)至少要用上你所有的内核。
发布于 2018-10-26 13:15:58
因为你实际上并没有在kaggle上使用gpu。KNeighborsClassifier不支持图形处理器
https://stackoverflow.com/questions/51693501
复制相似问题