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(weight * sq. distance from present coordinates)

其中

weight = Total # of coordinates / # of present coordinates

例如,[3, na, na, 6][1, na, 4, 5] 之间的距离为

\[\sqrt{\frac{4}{2}((3-1)^2 + (6-5)^2)}\]

如果所有坐标都缺失,或者没有共同存在的坐标,则该对返回 NaN。

用户指南中阅读更多内容。

0.22 版本新增。

参数:
X形状为 (n_samples_X, n_features) 的类数组

一个数组,其中每行是一个样本,每列是一个特征。

Y形状为 (n_samples_Y, n_features) 的类数组,默认为 None

一个数组,其中每行是一个样本,每列是一个特征。如果为 None,则方法使用 Y=X

squared布尔值,默认为 False

返回平方欧氏距离。

missing_valuesnp.nan, float 或 int,默认为 np.nan

缺失值的表示。

copy布尔值,默认为 True

创建并使用 X 和 Y(如果存在)的深拷贝。

返回:
distances形状为 (n_samples_X, n_samples_Y) 的 ndarray

返回 X 的行向量与 Y 的行向量之间的距离。

另请参阅

paired_distances

X 和 Y 元素对之间的距离。

参考文献

示例

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