sklearn.neighbors.KNeighborsTransformer?
class sklearn.neighbors.KNeighborsTransformer(*, mode='distance', n_neighbors=5, algorithm='auto', leaf_size=30, metric='minkowski', p=2, metric_params=None, n_jobs=1)
[源碼]
將X轉換為k個最近臨近點的(加權)圖
轉換后的數據是kneighbors_graph返回的稀疏圖。
在用戶指南中閱讀更多內容。
0.22版中的新功能。
參數 | 說明 |
---|---|
mode | {‘distance’, ‘connectivity’}, default=’distance’ 返回矩陣的類型:“connectivity”將返回帶1和0的連通性矩陣,“distance”將根據給定的指標返回臨近點之間的距離。 |
n_neighbors | int, default=5 變換后的稀疏圖中每個樣本的臨近點數。 出于兼容性原因,由于每個樣本都被視為自己的臨近點,因此當mode =='distance'時將計算一個額外的臨近點。 在這種情況下,稀疏圖包含(n_neighbors + 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: ','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.manifold import Isomap
>>> from sklearn.neighbors import KNeighborsTransformer
>>> from sklearn.pipeline import make_pipeline
>>> estimator = make_pipeline(
... KNeighborsTransformer(n_neighbors=5, mode='distance'),
... Isomap(neighbors_algorithm='precomputed'))
方法
方法 | 說明 |
---|---|
fit (X[, y]) |
使用X作為訓練數據擬合模型 |
fit_transform (X[, y]) |
適合數據,然后對其進行轉換。 |
get_params ([deep]) |
獲取此估計量的參數。 |
kneighbors ([X, n_neighbors,return_distance]) |
查找點的K臨近點。 |
kneighbors_grah ([X, n_neighbors, mode]) |
計算X中點的k臨近點的(加權)圖 |
set_params (**params) |
設置此估算器的參數。 |
transform ( X) |
計算X中點的臨近點(加權)圖 |
__init__(*, mode='distance', n_neighbors=5, 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 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 參數名稱映射到其值。 |
kneighbors( X=None, n_neighbors=None, return_distance=True)
[源碼]
查找點的K臨近點。 返回每個點的臨近點的索引和與之的距離
參數 | 說明 |
---|---|
X | array-like, shape (n_queries, n_features), or (n_queries, n_indexed) if metric == ‘precomputed’ 查詢點。 如果未提供,則返回每個索引點的臨近點。 在這種情況下,查詢點不被視為其自己的臨近點。 |
n_neighbors | int 要獲取的臨近點數(默認為傳遞給構造函數的值)。 |
return_distance | boolean, optional. Defaults to True. 如果錯誤,不會返回距離 |
返回值 | 說明 |
---|---|
neigh_dist | array, shape (n_queries, n_neighbors) 表示點的長度的數組,僅在return_distance = True時存在 |
neigh_ind | array, shape (n_queries, n_neighbors) 總體矩陣中最近點的索引。 |
示例
在下面的示例中,我們從代表我們的數據集的數組構造一個NearestNeighbors類,并詢問誰最接近[1,1,1]
>>> samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]]
>>> from sklearn.neighbors import NearestNeighbors
>>> neigh = NearestNeighbors(n_neighbors=1)
>>> neigh.fit(samples)
NearestNeighbors(n_neighbors=1)
>>> print(neigh.kneighbors([[1., 1., 1.]]))
(array([[0.5]]), array([[2]]))
如您所見,它返回[[0.5]]和[[2]],這意味著該元素位于距離0.5處,并且是樣本的第三個元素(索引從0開始)。 您還可以查詢多個點:
>>> X = [[0., 1., 0.], [1., 0., 1.]]
>>> neigh.kneighbors(X, return_distance=False)
array([[1],
[2]]...)
kneighbors_graph( X=None, n_neighbors=None, mode='connectivity')
[源碼]
計算X中點的k臨近點的(加權)圖
參數 | 說明 |
---|---|
X | array-like, shape (n_queries, n_features), or (n_queries, n_indexed) if metric == ‘precomputed’ 查詢點。 如果未提供,則返回每個索引點的臨近點。 在這種情況下,查詢點不被視為其自己的臨近點。 |
n_neighbors | int 每個樣本的臨近點數。 (默認值為傳遞給構造函數的值)。 |
mode | {‘connectivity’, ‘distance’}, optional 返回矩陣的類型:“連通性”將返回具有1和0的連通性矩陣,在“距離”中,邊為點之間的歐幾里得距離。 |
返回值 | 說明 |
---|---|
A | sparse graph in CSR format, shape = [n_queries, n_samples_fit] n_samples_fit是擬合數據中的樣本數A [i,j],分配了將i連接到j的邊的權重。 |
另見:
示例
>>> X = [[0], [3], [1]]
>>> from sklearn.neighbors import NearestNeighbors
>>> neigh = NearestNeighbors(n_neighbors=2)
>>> neigh.fit(X)
NearestNeighbors(n_neighbors=2)
>>> A = neigh.kneighbors_graph(X)
>>> A.toarray()
array([[1., 0., 1.],
[0., 1., 1.],
[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格式。 |