scikit-learn报”ValueError: radius neighbours are not implemented for KDTree or BallTree yet “的原因以及解决办法

该错误信息表示在使用scikit-learn库的KDTree或BallTree模型时,出现了半径邻居搜索没有被实现的错误。

原因

这是因为KDTree和BallTree模型目前不支持半径邻居搜索,而只支持最近邻居搜索。因此,在执行radius_neighbors()方法时,会抛出该错误。

解决方法

  1. 使用sklearn.neighbors.NearestNeighbors模型,这个模型支持radius_neighbors()

  2. 如果非要用KDTree或BallTree模型,可以尝试使用query_ball_point()方法。它可以找到在以某个中心点为圆心,以某个半径为半径的圆内的所有点。

示例代码:

from sklearn.neighbors import BallTree

X = [[0], [1], [2], [3]]
tree = BallTree(X)
indices = tree.query_radius(X, r=1.5)
print(indices)

输出结果:

[array([0, 1]), array([0, 1, 2]), array([1, 2, 3]), array([2, 3])]

以上就是关于scikit-learn报"ValueError: radius neighbours are not implemented for KDTree or BallTree yet "的原因以及解决办法。

此文章发布者为:Python技术站作者[metahuber],转载请注明出处:http://pythonjishu.com/scikit-learn-error-35/

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 5天前
下一篇 5天前

相关推荐