该错误信息表示在使用scikit-learn库的KDTree或BallTree模型时,出现了半径邻居搜索没有被实现的错误。
原因
这是因为KDTree和BallTree模型目前不支持半径邻居搜索,而只支持最近邻居搜索。因此,在执行radius_neighbors()方法时,会抛出该错误。
解决方法
-
使用sklearn.neighbors.NearestNeighbors模型,这个模型支持radius_neighbors()
-
如果非要用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技术站