euclidean_distances#

sklearn.metrics.pairwise.euclidean_distances(X, Y=None, *, Y_norm_squared=None, квадрат=False, X_norm_squared=None)[источник]#

Вычислите матрицу расстояний между каждой парой из массивов признаков X и Y.

По соображениям эффективности евклидово расстояние между парой векторов-строк x и y вычисляется как:

dist(x, y) = sqrt(dot(x, x) - 2 * dot(x, y) + dot(y, y))

Эта формулировка имеет два преимущества перед другими способами вычисления расстояний. Во-первых, она вычислительно эффективна при работе с разреженными данными. Во-вторых, если один аргумент изменяется, а другой остается неизменным, то dot(x, x) и/или dot(y, y) могут быть предварительно вычислены.

Однако это не самый точный способ выполнения этого вычисления, поскольку это уравнение потенциально страдает от «катастрофической потери точности». Кроме того, матрица расстояний, возвращаемая этой функцией, может быть не совсем симметричной, как требуется, например, scipy.spatial.distance функций.

Подробнее в Руководство пользователя.

Параметры:
X{array-like, sparse matrix} формы (n_samples_X, n_features)

Массив, где каждая строка — это образец, а каждый столбец — признак.

Y{array-like, sparse matrix} формы (n_samples_Y, n_features), default=None

Массив, где каждая строка — это образец, а каждый столбец — признак. Если None, метод использует Y=X.

Y_norm_squaredarray-like формы (n_samples_Y,) или (n_samples_Y, 1) или (1, n_samples_Y), по умолчанию=None

Предварительно вычисленные скалярные произведения векторов в Y (например, (Y**2).sum(axis=1)) Может игнорироваться в некоторых случаях, см. примечание ниже.

квадратbool, по умолчанию=False

Возвращает квадраты евклидовых расстояний.

X_norm_squaredarray-like формы (n_samples_X,) или (n_samples_X, 1) или (1, n_samples_X), по умолчанию=None

Предварительно вычисленные скалярные произведения векторов в X (например, (X**2).sum(axis=1)) Может игнорироваться в некоторых случаях, см. примечание ниже.

Возвращает:
расстоянияndarray формы (n_samples_X, n_samples_Y)

Возвращает расстояния между векторами строк X и векторы-строки Y.

Смотрите также

paired_distances

Расстояния между парами элементов X и Y.

Примечания

Для достижения лучшей точности, X_norm_squared и Y_norm_squared могут быть не использованы, если они переданы как np.float32.

Примеры

>>> from sklearn.metrics.pairwise import euclidean_distances
>>> X = [[0, 1], [1, 1]]
>>> # distance between rows of X
>>> euclidean_distances(X, X)
array([[0., 1.],
       [1., 0.]])
>>> # get distance to origin
>>> euclidean_distances(X, [[0, 0]])
array([[1.        ],
       [1.41421356]])