sklearn.metrics.pairwise_distances

sklearn.metrics.pairwise_distances()

Calcula la matriz de distancia de un arreglo vectorial X y opcional Y.

Este método toma un arreglo vectorial o una matriz de distancia, y devuelve una matriz de distancia. Si la entrada es un arreglo vectorial, las distancias se calculan. Si la entrada es una matriz de distancia, se devuelve en su lugar.

Este método proporciona una forma segura de tomar una matriz de distancia como entrada, preservando la compatibilidad con muchos otros algoritmos que toman un arreglo vectorial.

Si se da Y (por defecto no es None), entonces la matriz devuelta es la distancia paralela entre los arreglos de X y Y.

Valores válidos para la métrica son:

  • De scikit-learn: [“cityblock”, “cosine”, “euclidean”, “l1”, “l2”, “manhattan”]. Estas métricas soportan entradas de matriz dispersa. [“nan_euclidean”] pero todavía no soporta matrices dispersas.

  • Desde scipy.spatial.distance: [“braycurtis”, “canberra”, “chebyshev”, “correlation”, “dice”, “hamming”, “card”, “kulsinski”, “mahalanobis”, “minkowski”, “rogerstanimoto”, “russellrao”, “seuclidean”, “sokalmichener”, “sokalsneath”, “sqeuclidean”, “yule”] Ver la documentación para la ciencia. patial.distance para obtener detalles sobre estas métricas. Estas métricas no soportan entradas de matriz dispersa.

Ten en cuenta que en el caso de “cityblock”, “cosine” y “euclidean” (que son métricas válidas de scipy.spatial.distance), se utilizará la implementación de scikit-learn, que es más rápida y tiene soporte para matrices dispersas (excepto para “cityblock”). Para una descripción detallada de las métricas de scikit-learn, ver el __doc__ de la función sklearn.pairwise.distance_metrics.

Más información en el Manual de usuario.

Parámetros
Xndarray de forma (n_samples_X, n_samples_X) o (n_samples_X, n_features)

Arreglo de distancias entre pares de muestras, o un arreglo de características. La forma del arreglo debe ser (n_samples_X, n_samples_X) si metric == «precomputed» y (n_samples_X, n_features) en caso contrario.

Yndarray de forma (n_samples_Y, n_features), default=None

Un segundo arreglo de características opcional. Sólo se permite si metric != «precomputed».

metriccadena de caracteres o invocable, default=”euclidean”

La métrica que se utilizará para calcular la distancia entre instancias en un arreglo de características. Si la métrica es una cadena, debe ser una de las opciones permitidas por scipy.spatial.distance.pdist para su parámetro de métrica, o una métrica listada en pairwise.PAIRWISE_DISTANCE_FUNCTIONS. Si la métrica es «precomputed», se asume que X es una matriz de distancia. Alternativamente, si la métrica es una función invocable, se llama a cada par de instancias (filas) y se registra el valor resultante. El invocable debe tomar dos arreglos de X como entrada y devolver un valor que indique la distancia entre ellos.

n_jobsentero, default=None

El número de trabajos a utilizar para el cálculo. Esto funciona descomponiendo la matriz por pares en n_jobs partes iguales y calculándolas en paralelo.

None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa que se utilizan todos los procesadores. Consulta Glosario para más detalles.

force_all_finitebooleano o “allow-nan”, default=True

Si se produce un error en np.inf, np.nan, pd.NA en el arreglo. Ignorado para una métrica listada en pairwise.PAIRWISE_DISTANCE_FUNCTIONS. Las posibilidades son:

  • Verdadero: Forzar que todos los valores de la matriz sean finitos.

  • False: acepta np.inf, np.nan, pd.NA en el arreglo.

  • “allow-nan”: sólo acepta valores np.nan y pd.NA en el arreglo. Los valores no pueden ser infinitos.

Nuevo en la versión 0.22: force_all_finite acepta la cadena 'allow-nan'.

Distinto en la versión 0.23: Acepta pd.NA y lo convierte en np.nan.

**kwdsparámetros opcionales de palabra clave

Cualquier parámetro adicional se pasa directamente a la función de distancia. Si se utiliza una métrica scipy.spatial.distance, los parámetros siguen siendo dependientes de la métrica. Consulta los documentos scipy para ver ejemplos de uso.

Devuelve
Dndarray de forma (n_samples_X, n_samples_X) o (n_samples_X, n_samples_Y)

Una matriz D de distancia tal que D_{i, j} es la distancia entre los vectores i-ésimo y j-ésimo de la matriz dada X, si Y no lo es. Si Y no es None, entonces D_{i, j} es la distancia entre el arreglo i-ésimo de X y el arreglo j-ésimo de Y.

Ver también

pairwise_distances_chunked

Realiza el mismo cálculo que esta función, pero devuelve un generador de fragmentos de la matriz de distancia, para limitar el uso de memoria.

paired_distances

Calcula las distancias entre los elementos correspondientes de dos arreglos.