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