sklearn.neighbors.KNeighborsRegressor?

class sklearn.neighbors.KNeighborsRegressor(n_neighbors=5, *, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None, **kwargs)

[源碼]

基于k最近鄰的回歸。

通過對訓練集中最近臨近點的相關目標進行局部插值來預測目標。

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

0.9版的新功能。

參數 說明
n_neighbors int, default=5
默認情況下用于kneighbors查詢的臨近點數。
weights {‘uniform’, ‘distance’} or callable, default=’uniform’
預測中使用的權重函數。 可能的值:
”uniform”:統一權重。 每個鄰域中的所有點均被加權。
“distance”:權重點與其距離的倒數。 在這種情況下,查詢點的近鄰比遠處的近鄰具有更大的影響力。
[callable]:用戶定義的函數,該函數接受距離數組,并返回包含權重的相同形狀的數組。
默認情況下使用統一權重。
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。 這會影響構造和查詢的速度,以及存儲樹所需的內存。 最佳值取決于問題的性質。
p int, default=2
Minkowski指標的功率參數。 當p = 1時,這等效于對p = 2使用manhattan_distance(l1)和euclidean_distance(l2)。對于任意p,使用minkowski_distance(l_p)。
metric str or callable, default=’minkowski’
樹使用的距離度量。 默認度量標準為minkowski,p = 2等于標準歐幾里德度量標準。 有關可用度量的列表,請參見DistanceMetric的文檔。 如果度量是“預先計算的”,則X被假定為距離矩陣,并且在擬合過程中必須為平方。 X可能是一個稀疏圖,在這種情況下,只有“非零”元素可以被視為臨近點。
metric_params dict, default=None
度量功能的其他關鍵字參數。
n_jobs int, default=None
為臨近點搜索運行的并行作業數。 除非在joblib.parallel_backend上下文中,否則None表示1。 -1表示使用所有處理器。 有關更多詳細信息,請參見詞匯表。 不會影響擬合方法。
屬性 說明
effective_metric_ str or callable
使用的距離度量。 它將與度量參數相同或與其相同,例如 如果metric參數設置為“ minkowski”,而p參數設置為2,則為“ euclidean”。
effective_metric_params_ dict
度量功能的其他關鍵字參數。 對于大多數指標而言,它與metric_params參數相同,但是,如果將valid_metric_屬性設置為“ minkowski”,則也可能包含p參數值。

另見

NearestNeighbors

RadiusNeighborsRegressor

KNeighborsClassifier

RadiusNeighborsClassifier

注意

有關算法選擇和leaf_size的討論,請參見Nearest Neighbors的在線文檔。

警告:如果發現兩個臨近點(臨近點k + 1和k)具有相同的距離但標簽不同,則結果將取決于訓練數據的順序。

https://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm

示例

>>> X = [[0], [1], [2], [3]]
>>> y = [0011]
>>> from sklearn.neighbors import KNeighborsRegressor
>>> neigh = KNeighborsRegressor(n_neighbors=2)
>>> neigh.fit(X, y)
KNeighborsRegressor(...)
>>> print(neigh.predict([[1.5]]))
[0.5]

方法

方法 說明
fit(X,y) 使用X作為訓練數據和y作為目標值擬合模型
get_params([, deep]) 獲取此估計量的參數。
kneighbors([, X, n_neighbors, …]) 查找點的K臨近點。
kneighbors_graph([,X, n_neighbors, mode]) 計算X中點的k臨近點的(加權)圖
predict(X) 預測提供數據的目標
score( X, y[, sample_weight]) 返回預測的確定系數R ^ 2。
set_params(**params) 設置此估算器的參數。
__init__(, n_neighbors=5, *, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None, **kwargs)

[源碼]

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

fit(X, y)

[源碼]

該模型使用X作為訓練數據,而y作為目標值

參數 說明
X {array-like, sparse matrix, BallTree, KDTree}
訓練數據。 如果是數組或矩陣,則將其形狀設置為[n_samples,n_features],如果是metric =“ precomputed”,則為[n_samples,n_samples]。
y {array-like, sparse matrix}
目標值,浮點值數組,形狀= [n_samples]
或[n_samples,n_outputs]
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
如果為False,則不會返回距離
返回值 說明
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..50.], [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的邊的權重。

另見:

NearestNeighbors.radius_neighbors_graph

示例

>>> 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.]])
predict(X)

[源碼]

預測提供數據的目標

參數 說明
X array-like of shape (n_queries, n_features), or (n_queries, n_indexed) if metric == ‘precomputed’
測試樣本
返回值 說明
y ndarray of shape (n_queries,) or (n_queries, n_outputs), dtype=int
目標值。
score(X, y, sample_weight=None)

[源碼]

返回預測的確定系數R ^ 2。

系數R ^ 2定義為(1- u / v),其中u是平方的殘差和((y_true-y_pred)** 2).sum(),而v是平方的總和((y_true- y_true.mean())** 2).sum()。 可能的最高得分為1.0,并且可能為負(因為該模型可能會更差)。 不管輸入特征如何,始終預測y的期望值的常數模型將獲得0.0的R ^ 2分數。

參數 說明
X array-like of shape (n_samples, n_features)
測試樣品。 對于某些估計量,這可以是預先計算的內核矩陣或通用對象列表,而不是shape =(n_samples,n_samples_fitted),其中n_samples_fitted是用于估計量擬合的樣本數。
y array-like of shape (n_samples,) or (n_samples, n_outputs)
X的真實值。
sample_weight array-like of shape (n_samples,), default=None
樣本權重
返回值 說明
score 浮動
.predict(X) wrt. y.的R^2

聲明

在回歸器上調用分數時使用的R2分數使用版本0.23中的multioutput ='uniform_average'來保持與_r2_score的默認值一致。 這會影響所有多輸出回歸器的評分方法(MultiOutputRegressor除外)。

set_params(**params)

[源碼]

設置此估算器的參數。

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

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