Introducción
En este laboratorio, exploraremos el submódulo sklearn.metrics.pairwise de scikit-learn. Este módulo proporciona utilidades para calcular distancias y afinidades entre pares de conjuntos de muestras.
Aprenderemos sobre diferentes métricas y kernels entre pares, sus definiciones y cómo utilizarlos en scikit-learn.
Consejos sobre la VM
Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Notebook y acceder a Jupyter Notebook para practicar.
A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.
Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y resolveremos el problema para usted de inmediato.
Métricas de Distancia
Las métricas de distancia son funciones que miden la disimilitud entre dos objetos. Estas métricas cumplen ciertas condiciones, como no-negatividad, simetría y la desigualdad triangular.
Algunas métricas de distancia populares incluyen la distancia euclidiana, la distancia de Manhattan y la distancia de Minkowski.
Calculemos las distancias entre pares de dos conjuntos de muestras utilizando la función pairwise_distances:
import numpy as np
from sklearn.metrics import pairwise_distances
X = np.array([[2, 3], [3, 5], [5, 8]])
Y = np.array([[1, 0], [2, 1]])
## Calculate pairwise distances between X and Y
distances = pairwise_distances(X, Y, metric='manhattan')
print(distances)
Salida:
array([[4., 2.],
[7., 5.],
[12., 10.]])
Kernels
Los kernels son medidas de similitud entre dos objetos. Se pueden utilizar en varios algoritmos de aprendizaje automático para capturar relaciones no lineales entre las características.
Scikit-learn proporciona diferentes funciones de kernel, como el kernel lineal, el kernel polinomial, el kernel sigmoide, el kernel RBF, el kernel Laplaciano y el kernel chi-cuadrado.
Calculemos los kernels entre pares de dos conjuntos de muestras utilizando la función pairwise_kernels:
from sklearn.metrics.pairwise import pairwise_kernels
X = np.array([[2, 3], [3, 5], [5, 8]])
Y = np.array([[1, 0], [2, 1]])
## Calculate pairwise kernels between X and Y using linear kernel
kernels = pairwise_kernels(X, Y, metric='linear')
print(kernels)
Salida:
array([[ 2., 7.],
[ 3., 11.],
[ 5., 18.]])
Similaridad Coseno
La similitud coseno es una medida de la similitud entre dos vectores. Calcula el coseno del ángulo entre los vectores después de normalizarlos.
Scikit-learn proporciona la función cosine_similarity para calcular la similitud coseno entre vectores.
from sklearn.metrics.pairwise import cosine_similarity
X = np.array([[2, 3], [3, 5], [5, 8]])
Y = np.array([[1, 0], [2, 1]])
## Compute cosine similarity between X and Y
similarity = cosine_similarity(X, Y)
print(similarity)
Salida:
array([[0.89442719, 0.9486833 ],
[0.93982748, 0.99388373],
[0.99417134, 0.99705449]])
Kernel Polinomial
El kernel polinomial calcula la similitud entre dos vectores considerando las interacciones entre sus dimensiones.
Scikit-learn proporciona la función polynomial_kernel para calcular el kernel polinomial entre vectores.
from sklearn.metrics.pairwise import polynomial_kernel
X = np.array([[2, 3], [3, 5], [5, 8]])
Y = np.array([[1, 0], [2, 1]])
## Compute polynomial kernel between X and Y
kernel = polynomial_kernel(X, Y, degree=2)
print(kernel)
Salida:
array([[ 10., 20.],
[ 17., 37.],
[ 38., 82.]])
Resumen
En este laboratorio, exploramos el submódulo sklearn.metrics.pairwise de scikit-learn. Aprendimos sobre diferentes métricas y kernels entre pares, sus definiciones y cómo utilizarlas para calcular distancias y afinidades entre muestras.
Utilizando la función pairwise_distances, calculamos las distancias entre pares de conjuntos de muestras. Utilizando la función pairwise_kernels, computamos los kernels entre pares de conjuntos de muestras utilizando varias funciones de kernel.
También exploramos la función cosine_similarity para calcular la similitud coseno entre vectores, y la función polynomial_kernel para computar el kernel polinomial.
Estas métricas y kernels entre pares son útiles en varias tareas de aprendizaje automático, como agrupamiento, reducción de dimensionalidad y análisis basado en similitud.
Resumen
¡Felicitaciones! Has completado el laboratorio de Métricas entre Pares. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.