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]])