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/odot(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
yY_norm_squared
pueden no utilizarse si se pasan comofloat32
.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]])