sklearn.metrics.pairwise.nan_euclidean_distances?
sklearn.metrics.pairwise.nan_euclidean_distances(X, Y=None, *, squared=False, missing_values=nan, copy=True)
在缺少值的情況下計算歐幾里得距離。
計算X和Y中每對樣本之間的歐幾里得距離,如果Y = None,則假定Y = X。當計算一對樣本之間的距離時,此公式將忽略兩個樣本中均缺少值的特征坐標,并按比例增加其余坐標的權重:
dist(x,y)= sqrt(權重*與當前坐標的平方距離)其中,權重=總坐標數/當前坐標數
例如,[3,na,na,6]與[1,na,4,5]之間的距離為:
如果缺少所有坐標或沒有共同的當前坐標,則為該對返回NaN。
在用戶指南中閱讀更多內容。
0.22版中的新功能。
參數 | 說明 |
---|---|
X | array-like, shape=(n_samples_1, n_features) |
Y | array-like, shape=(n_samples_2, n_features) |
squared | bool, default=False 返回平方的歐氏距離。 |
missing_values | np.nan or int, default=np.nan 缺失值的表示 |
copy | boolean, default=True 制作和使用X和Y的深層副本(如果存在Y) |
返回值 | 說明 |
---|---|
distances | array, shape (n_samples_1, n_samples_2) |
另見
X和Y元素對之間的距離。
參考
John K. Dixon, “Pattern Recognition with Partly Missing Data”, IEEE Transactions on Systems, Man, and Cybernetics, Volume: 9, Issue: 10, pp. 617 - 621, Oct. 1979. http://ieeexplore.ieee.org/abstract/document/4310090/
示例
>>> from sklearn.metrics.pairwise import nan_euclidean_distances
>>> nan = float("NaN")
>>> X = [[0, 1], [1, nan]]
>>> nan_euclidean_distances(X, X) # distance between rows of X
array([[0. , 1.41421356],
[1.41421356, 0. ]])
>>> # get distance to origin
>>> nan_euclidean_distances(X, [[0, 0]])
array([[1. ],
[1.41421356]])