python - k 最近邻回归本质上很慢吗?

标签 python machine-learning scikit-learn knn

我正在尝试在相当大的数据集上使用 scikit learn 的 k 最近邻实现。问题是预测需要很长的时间,几乎和训练一样长,这是没有意义的。是算法的问题,还是 scikit learn 不适用于大型数据集(不支持 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/

相关文章:

python - Pandas TimeGrouper 和 Pivot?

python - 使用 PyTorch 根据我从张量计算的数字来调整张量矩阵值?

machine-learning - 为什么深度残差网络中的每个 block 都有两个卷积层而不是一个?

scikit-learn - sklearn : LogisticRegression - predict_proba(X) - calculation

scikit-learn - 加载并使用保存的 Keras model.h5

sockets - sklearn.datasets fetch_olivetti_faces IOError : [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl. c:661)

python - 迭代 tf.data.Dataset 的有效方法

python - 如何从 Python 3 导入 FileNotFoundError?

python - 如何将多个函数应用于 numpy 数组?

python - 在机器学习中使用三种不同的标签