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