Métricas y Kernels entre Pares en Scikit-Learn

Beginner

This tutorial is from open-source community. Access the source code

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.