Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ML与sklearn:KNeighborRegressor拟合功能卡在一个大DB上_Python_Scikit Learn_Nearest Neighbor - Fatal编程技术网

Python ML与sklearn:KNeighborRegressor拟合功能卡在一个大DB上

Python ML与sklearn:KNeighborRegressor拟合功能卡在一个大DB上,python,scikit-learn,nearest-neighbor,Python,Scikit Learn,Nearest Neighbor,我已经使用sklearn工具有一段时间了,但是我现在有一个奇怪的问题。我只是想用sklearn构建一个KNN回归器,但是执行过程要花很长时间,在调试时,fit函数的执行似乎要花很长时间。 我应该提到数据集很大(大约25000条记录,有10个功能),但我还是等了一个小时,没有结果 这是什么原因造成的 相关代码: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 42

我已经使用sklearn工具有一段时间了,但是我现在有一个奇怪的问题。我只是想用sklearn构建一个KNN回归器,但是执行过程要花很长时间,在调试时,fit函数的执行似乎要花很长时间。 我应该提到数据集很大(大约25000条记录,有10个功能),但我还是等了一个小时,没有结果

这是什么原因造成的

相关代码:

 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 42)
regressor = neighbors.KNeighborsRegressor(n_neighbors = n, algorithm = algorithm, weights = weights)
regressor.fit(X_train, y_train)
y_pred = regressor.predict(X_test)
train_score = regressor.score(X_train, y_train)
test_score = regressor.score(X_test, y_test)

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

KNN将考虑所有的数据点并拾取上面的代码<代码> k>代码>最近邻居。因此,如果您的数据很大,则需要更多的时间

K
是超参数&您可以使用或对其进行调整

您可以选择:

  • 缩小数据规模(即减少数据点的数量,如25k到15K)
  • 增加系统内存大小和处理器速度或在云中运行KNN
  • 等待KNN完成
  • 如果存在延迟约束,则不使用KNN

  • 您也可以尝试使用RBF内核,因为它是KNN的一个很好的近似值&它将花费更少的时间

    您在其中使用的是哪个
    “算法”
    ?你试过改变它吗?你的数据集稀疏吗?谢谢你的完整答案,它帮助很大。