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

yizhihongxing

该错误信息表示在使用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 "的原因以及解决办法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:scikit-learn报”ValueError: radius neighbours are not implemented for KDTree or BallTree yet “的原因以及解决办法 - Python技术站

(0)
上一篇 2023年3月19日
下一篇 2023年3月19日

相关文章

合作推广
合作推广
分享本页
返回顶部