具有缺失值的歐幾里得距離 (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、浮點數或整數,預設值=np.nan
缺失值的表示法。
- copy布林值,預設值=True
建立並使用 X 和 Y(如果 Y 存在)的深層副本。
- 傳回值:
- distances形狀為 (n_samples_X, n_samples_Y) 的 ndarray
傳回
X
的行向量和Y
的行向量之間的距離。
另請參閱
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 = [[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]])