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 * 存在的坐标的平方距离) 其中, weight = 总坐标数 / 存在的坐标数

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

\[\sqrt{\]

rac{4}{2}((3-1)^2 + (6-5)^2)}

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

更多信息请参阅 用户指南

Added in version 0.22.

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

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

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

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

squaredbool, 默认=False

返回平方欧几里得距离。

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

缺失值的表示。

copybool, 默认=True

对X和Y(如果Y存在)进行深拷贝并使用。

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

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

See also

paired_distances

X和Y中元素对的距离。

References

Examples

>>> from sklearn.metrics.pairwise import nan_euclidean_distances
>>> nan = float("NaN")
>>> X = [[0, 1], [1, nan]]
>>> nan_euclidean_distances(X, X) # X行之间的距离
array([[0.        , 1.41421356],
       [1.41421356, 0.        ]])
>>> # 获取到原点的距离
>>> nan_euclidean_distances(X, [[0, 0]])
array([[1.        ],
       [1.41421356]])