我正在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
答案 0 :(得分:1)
您的代码本身没有任何问题。 KNN只是一个慢速算法,它对您来说较慢,因为计算图像之间的距离很难成比例,对您来说它也较慢,因为问题足够大,无法真正有效地使用您的缓存。
如果不使用其他库或编写自己的GPU内核,则可以通过替换
来提高速度clf=KNeighborsClassifier(n_neighbors=3)
使用
clf=KNeighborsClassifier(n_neighbors=3, n_jobs=-1)
至少使用所有内核。
答案 1 :(得分:0)
因为您实际上没有在kaggle上使用gpu。 KNeighborsClassifier不支持GPU