我试图在相当大的数据集上使用scikit Learn中的k个最近邻居实现。问题在于,预测需要很长时间,几乎与没有意义的训练一样长。这是算法的问题,还是scikit learning不是针对大型数据集(不支持GPU)的事实。
有关更多信息,我尝试基于x,y,z和对象标签预测激光雷达强度。每次激光雷达扫描都有大约100,000个点,因此我试图预测每个点的强度。
最佳答案
尝试使scikit-learn的KNeighborsClassifier
运行更快的事情:
不同的algorithm
参数:kd_tree
,ball_tree
用于低维数据,brute
用于高维数据n_jobs
参数。使用较大的n_jobs
并不一定会使速度更快,有时反之亦然。
确保您使用的是最新版本:v0.22中的性能已得到改进,并且某些尚未合并的优化(scikit-learn#14543)
使用外部近似最近邻居库(例如Annoy)以及使用metric="precomputed"
预先计算的稀疏距离
关于python - k个最近邻居的回归本质上是缓慢的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59178717/