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

标签 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

最佳答案

您的代码本身没有任何问题。 KNN 只是一种缓慢的算法,它对你来说更慢,因为计算图像之间的距离很难大规模,而且对你来说更慢,因为问题足够大,以至于你的缓存无法真正有效地使用。

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

clf=KNeighborsClassifier(n_neighbors=3)

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

至少使用所有核心。

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

相关文章:

python - sklearn支持向量机不学习

machine-learning - 从回归模型中找出属性值组合

python - 什么数据科学编程算法类似于连续变量的朴素贝叶斯?

matlab - 如何定义KNN的权重?

python - 多变量 KNN 预测

python - 如何在我的决策树中获取所有 Gini 指数?

python - 二维数组与一维数组比较返回二维数组

Python在函数中导入包

ruby - 实现k最近邻需要哪些数据?

java - 如何检查 DirectedSparsedGraph 是否包含具有这 2 个节点的节点之间的边?