带有sklearn的ML:KNeighborRegressor拟合函数卡在一个大数据库上

时间:2018-09-20 14:36:27

标签: python scikit-learn nearest-neighbor

我已经使用sklearn工具已有一段时间了,但是现在有这个奇怪的问题。我只是试图用sklearn构建KNN回归器,但是执行需要花费很多时间,而在调试时,fit函数的执行似乎需要花费很多时间。 我应该提到的是,数据集很大(约25,000条记录,具有10个功能),但仍然-我现在等待一个小时,没有任何结果。

是什么原因造成的?

相关代码段:

div

1 个答案:

答案 0 :(得分:0)

这就是KNN的本质。算法时间复杂度为KNN为O(nd),其中n为数据点数,d为维度(在您的情况下为n = 25k, d = 10

KNN将考虑所有数据点并选择最靠近的K个邻居。因此,如果您的数据很大,则会花费更多时间。 K是超级参数,您可以使用GridSearchCVRandomizedSearchCV

对其进行调整

您拥有的选项:

  1. 缩小数据规模(即,将数据点的数量从25k减少到15k)
  2. 增加系统内存大小和处理器速度,或者在云中运行KNN
  3. 等到KNN完成
  4. 如果您有延迟限制,请不要使用KNN

您也可以在RBF内核上尝试SVM,因为它是KNN的近似值,而且所需时间更少