sklearn.metrics.pairwise.euclidean_distances

sklearn.metrics.pairwise.euclidean_distances()

Considerando las filas de X (y Y=X) como vectores, calcula la matriz de distancia entre cada par de vectores.

Por razones de eficiencia, la distancia euclidiana entre un par de vectores fila x y y se calcula como:

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

Esta formulación tiene dos ventajas sobre otras formas de calcular las distancias. En primer lugar, es eficiente desde el punto de vista computacional cuando se trata de datos dispersos. En segundo lugar, si uno de los argumentos varía pero el otro permanece inalterado, entonces dot(x, x) y/o dot(y, y) pueden ser precalculados.

Sin embargo, esta no es la forma más precisa de hacer este cálculo, porque esta ecuación sufre potencialmente de «cancelación catastrófica». Además, la matriz de distancias devuelta por esta función puede no ser exactamente simétrica como requieren, por ejemplo, las funciones scipy.spatial.distance.

Leer más en el Manual de Usuario.

Parámetros
X{array-like, sparse matrix} de forma (n_samples_X, n_features)
Y{array-like, sparse matrix} de forma (n_samples_Y, n_features), default=None
Y_norm_squaredarray-like de forma (n_samples_Y,), default=None

Productos-punto precalculados de vectores en Y (por ejemplo, (Y**2).sum(axis=1)) Pueden ignorarse en algunos casos, ver la nota más abajo.

squaredbool, default=False

Devuelve las distancias euclidianas al cuadrado.

X_norm_squaredarray-like de forma (n_samples,), default=None

Productos-punto precalculados de vectores en X (por ejemplo, (X**2).sum(axis=1)) Pueden ignorarse en algunos casos, ver la nota más abajo.

Devuelve
distancesndarray de forma (n_samples_X, n_samples_Y)

Ver también

paired_distances

Distancias entre pares de elementos de X y Y.

Notas

Para lograr una mayor precisión, X_norm_squared y Y_norm_squared pueden no utilizarse si se pasan como float32.

Ejemplos

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