sklearn.neighbors.RadiusNeighborsTransformer?

class sklearn.neighbors.RadiusNeighborsTransformer(*, mode='distance', radius=1.0, algorithm='auto', leaf_size=30, metric='minkowski', p=2, metric_params=None, n_jobs=1)

[源碼]

將X轉換為比半徑更近的臨近點的(加權)圖

轉換后的數據是由radius_neighbors_graph返回的稀疏圖。

用戶指南中閱讀更多內容。

0.22版中的新功能。

參數 說明
mode {‘distance’, ‘connectivity’}, default=’distance’
返回矩陣的類型:“連通性”將返回帶1和0的連通性矩陣,“距離”將根據給定的指標返回臨近點之間的距離。
radius float, default=1.
變換后的稀疏圖中的鄰域半徑。
algorithm {‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, default=’auto’
用于計算最近臨近點的算法:
ball_tree’將使用BallTree
kd_tree”將使用KDTree
“brute”將使用暴力搜索。
“auto”將嘗試根據傳遞給fit方法的值來決定最合適的算法。
注意:稀疏輸入上的擬合將使用蠻力覆蓋此參數的設置。
leaf_size int, default=30
葉大小傳遞給BallTree或KDTree。 這會影響構造和查詢的速度,以及存儲樹所需的內存。 最佳值取決于問題的性質。
metric str or callable, default=’minkowski’
用于距離計算的指標。 可以使用scikit-learn或scipy.spatial.distance中的任何度量。
如果metric是可調用的函數,則會在每對實例(行)上調用它,并記錄結果值。 可調用對象應將兩個數組作為輸入并返回一個值,指示它們之間的距離。 這適用于Scipy的指標,但效率不如將指標名稱作為字符串傳遞。
不支持距離矩陣。
指標的有效值為:
來自 scikit-learn: [‘cityblock’, ‘cosine’, ‘euclidean’, ‘l1’, ‘l2’, ‘manhattan’]
來自 scipy.spatial.distance: [‘braycurtis’, ‘canberra’, ‘chebyshev’, ‘correlation’, ‘dice’, ‘hamming’, ‘jaccard’, ‘kulsinski’, ‘mahalanobis’, ‘minkowski’, ‘rogerstanimoto’, ‘russellrao’, ‘seuclidean’, ‘sokalmichener’, ‘sokalsneath’, ‘sqeuclidean’, ‘yule’]
有關這些指標的詳細信息,請參見scipy.spatial.distance的文檔。
p int, default=2
sklearn.metrics.pairwise.pairwise_distances中的Minkowski指標的參數。 當p = 1時,這等效于對p = 2使用manhattan_distance(l1)和euclidean_distance(l2)。對于任意p,使用minkowski_distance(l_p)。
metric_params dict, default=None
度量功能的其他關鍵字參數。
n_jobs int, default=1
為臨近點搜索運行的并行作業數。 如果為-1,則作業數將設置為CPU內核數。

示例

>>> from sklearn.cluster import DBSCAN
>>> from sklearn.neighbors import RadiusNeighborsTransformer
>>> from sklearn.pipeline import make_pipeline
>>> estimator = make_pipeline(
...     RadiusNeighborsTransformer(radius=42.0, mode='distance'),
...     DBSCAN(min_samples=30, metric='precomputed'))

方法

方法 說明
fit(X[, y]) 使用X作為訓練數據擬合模型
fit_transform(X[, y]) 適合數據,然后對其進行轉換。
get_params([deep]) 獲取此估計量的參數。
radius_neighbors([X, radius, …]) 查找一個或多個給定半徑內的臨近點。
radius_neighbors_graph([X, radius, mode, …]) 計算X中點的臨近點(加權)圖
set_params(**params) 設置此估算器的參數。
transform(X) 計算X中點的臨近點(加權)圖
__init__(*, mode='distance', radius=1.0, algorithm='auto', leaf_size=30, metric='minkowski', p=2, metric_params=None, n_jobs=1)

[源碼]

初始化, 請參閱help(type())以獲得準確的說明

fit(X, y=None)

[源碼]

使用X作為訓練數據擬合模型

參數 說明
X {array-like, sparse matrix, BallTree, KDTree}
訓練數據。 如果是數組或矩陣,則將形狀設置為[n_samples,n_features],如果是metric =“ precomputed”,則設置為[n_samples,n_samples]
fit_transform(X, y=None)

[源碼]

適合數據,然后對其進行轉換。

使用可選參數fit_params將轉換器擬合到X和y,并返回X的轉換版本。

參數 說明
X array-like of shape (n_samples, n_features)
訓練集
y ignored
返回值 說明
Xt sparse matrix of shape (n_samples, n_samples)
為Xt [i,j]分配將i連接到j的邊的權重。 僅臨近點具有顯式值。 對角線始終是明確的。 矩陣為CSR格式。
get_params(deep=True)

[源碼]

獲取此估計量的參數。

參數 說明
deep bool, default=True
如果為True,則將返回此估算器和作為估算器的包含子對象的參數。
返回值 說明
params mapping of string to any
參數名稱映射到其值。
radius_neighbors(X=None, radius=None, return_distance=True, sort_results=False)

[源碼]

查找一個或多個給定半徑內的臨近點。

返回數據集中每個點的索引和距離,該數據集位于一個球中,球的大小半徑圍繞查詢數組的點。 邊界上的點包括在結果中。

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

參數 說明
X array-like, (n_samples, n_features), optional
查詢點。 如果未提供,則返回每個索引點的臨近點。 在這種情況下,查詢點不被視為其自己的臨近點。
radius float
限制臨近點返回的距離。 (默認值為傳遞給構造函數的值)
return_distance boolean, optional. Defaults to True.
如果為False,則不會返回距離。
sort_results boolean, optional. Defaults to False.
如果為True,則距離和索引將在返回之前進行排序。 如果為False,則不會對結果進行排序。 如果return_distance == False,則將sort_results = True設置將導致錯誤。
0.22版中的新功能。
返回值 說明
neigh_dist array, shape (n_samples,) of arrays
表示到每個點的距離的數組,僅當return_distance = True時才存在。 距離值是根據度量構造函數參數計算的。
neigh_ind array, shape (n_samples,) of arrays
人口矩陣中距離查詢點最近的近似點的索引數組。

聲明

因為每個點的臨近點數不一定相等,所以多個查詢點的結果不能適合標準數據數組。 為了提高效率,radius_neighbors返回對象數組,其中每個對象都是一維索引或距離數組。

示例

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

>>> import numpy as np
>>> samples = [[0.0.0.], [0..50.], [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的點的距離,而返回的第二個數組包含其索引。 通常,可以同時查詢多個點。

radius_neighbors_graph(X=None, radius=None, mode='connectivity', sort_results=False)

[源碼]

計算X中點的臨近點(加權)圖

鄰域限制點的距離小于半徑。

參數 說明
X array-like of shape (n_samples, n_features), default=None
查詢點。 如果未提供,則返回每個索引點的臨近點。 在這種情況下,查詢點不被視為其自己的臨近點。
radius float
社區半徑。 (默認值為傳遞給構造函數的值)。
mode {‘connectivity’, ‘distance’}, optional
返回矩陣的類型:“連通性”將返回具有1和0的連通性矩陣,在“距離”中,邊為點之間的歐幾里得距離。
sort_results boolean, optional. Defaults to False.
如果為True,則距離和索引將在返回之前進行排序。 如果為False,則不會對結果進行排序。 僅與mode =” distance”一起使用。

0.22版中的新功能。
返回值 說明
A sparse graph in CSR format, shape = [n_queries, n_samples_fit]
n_samples_fit是擬合數據中的樣本數A [i,j],分配了將i連接到j的邊的權重。

另見:

kneighbors_graph

示例

>>> X = [[0], [3], [1]]
>>> from sklearn.neighbors import NearestNeighbors
>>> neigh = NearestNeighbors(radius=1.5)
>>> neigh.fit(X)
NearestNeighbors(radius=1.5)
>>> A = neigh.radius_neighbors_graph(X)
>>> A.toarray()
array([[1.0.1.],
       [0.1.0.],
       [1.0.1.]])
set_params(**params)

[源碼]

設置此估算器的參數。

該方法適用于簡單的估計器以及嵌套對象(例如管道)。 后者的參數格式為 __ ,以便可以更新嵌套對象的每個組件。

參數 說明
**params dict
估算器參數。
返回值 說明
self object
估算器實例。
transform(X)

[源碼]

計算X中點的臨近點(加權)圖

參數 說明
X array-like of shape (n_samples_transform, n_features)
樣本數據
返回值 說明
Xt sparse matrix of shape (n_samples_transform, n_samples_fit)
為Xt [i,j]分配將i連接到j的邊的權重。 僅臨近點具有顯式值。 對角線始終是明確的。 矩陣為CSR格式。