當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python sklearn NearestNeighbors.radius_neighbors用法及代碼示例


本文簡要介紹python語言中 sklearn.neighbors.NearestNeighbors.radius_neighbors 的用法。

用法:

radius_neighbors(X=None, radius=None, return_distance=True, sort_results=False)

在一個或多個點的給定半徑內找到鄰居。

從位於查詢數組點周圍的大小為radius 的球中的數據集中返回每個點的索引和距離。位於邊界上的點包含在結果中。

結果點不一定按到查詢點的距離排序。

參數

X(n_samples, n_features) 的類似數組,默認=None

查詢點或點。如果未提供,則返回每個索引點的鄰居。在這種情況下,查詢點不被認為是它自己的鄰居。

radius浮點數,默認=無

限製鄰居返回的距離。默認值是傳遞給構造函數的值。

return_distance布爾,默認=真

是否返回距離。

sort_results布爾,默認=假

如果為 True,則距離和索引將在返回之前按增加的距離排序。如果為 False,則可能不會對結果進行排序。如果 return_distance=False ,設置 sort_results=True 將導致錯誤。

返回

neigh_distndarray 形狀 (n_samples,) 的數組

表示到每個點的距離的數組,僅在 return_distance=True 時出現。距離值根據metric 構造函數參數計算。

neigh_indndarray 形狀 (n_samples,) 的數組

位於查詢點周圍大小為 radius 的球內的人口矩陣中近似最近點的索引數組。

注意

由於每個點的鄰居數不一定相等,因此多個查詢點的結果無法適合標準數據數組。為了提高效率,radius_neighbors 返回對象數組,其中每個對象都是索引或距離的一維數組。

例子

在下麵的示例中,我們從表示數據集的數組構造一個 NeighborsClassifier 類,並詢問誰是最接近 [1, 1, 1] 的點:

>>> import numpy as np
>>> samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]]
>>> from sklearn.neighbors import NearestNeighbors
>>> neigh = NearestNeighbors(radius=1.6)
>>> neigh.fit(samples)
NearestNeighbors(radius=1.6)
>>> rng = neigh.radius_neighbors([[1., 1., 1.]])
>>> print(np.asarray(rng[0][0]))
[1.5 0.5]
>>> print(np.asarray(rng[1][0]))
[1 2]

返回的第一個數組包含到所有小於 1.6 的點的距離,而返回的第二個數組包含它們的索引。一般來說,可以同時查詢多個點。

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.neighbors.NearestNeighbors.radius_neighbors。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。