为了账号安全,请及时绑定邮箱和手机立即绑定

带有 sklearn 的机器学习:KNeighborRegressor 拟合函数卡在大数据库上

带有 sklearn 的机器学习:KNeighborRegressor 拟合函数卡在大数据库上

慕田峪4524236 2021-06-14 12:14:41
我已经使用 sklearn 工具有一段时间了,但我现在遇到了这个奇怪的问题。我只是试图用 sklearn 构建一个 KNN 回归器,但执行需要永远,并且在调试时看起来 fit 函数的执行似乎永远需要执行。我应该提到数据集很大(约 25,000 条记录,具有 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)
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

这就是 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 的一个很好的近似,而且花费的时间更少


查看完整回答
反对 回复 2021-06-22
  • 1 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号