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)

另見

paired_distances

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 = [[01], [1, nan]]
>>> nan_euclidean_distances(X, X) # distance between rows of X
array([[0.        , 1.41421356],
       [1.414213560.        ]])
>>> # get distance to origin
>>> nan_euclidean_distances(X, [[00]])
array([[1.        ],
       [1.41421356]])