Mesures et noyaux entre paires dans Scikit-Learn

Beginner

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

Introduction

Dans ce laboratoire, nous allons explorer le sous-module sklearn.metrics.pairwise de scikit-learn. Ce module fournit des utilitaires pour calculer les distances et les affinités entre paires d'échantillons.

Nous allons apprendre à connaître différentes métriques et noyaux pour les paires, leurs définitions et comment les utiliser dans scikit-learn.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour passer à l'onglet Carnet de notes pour accéder au carnet Jupyter pour pratiquer.

Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limites du carnet Jupyter.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session et nous réglerons rapidement le problème pour vous.

Mesures de distance

Les mesures de distance sont des fonctions qui mesurent la dissimilarité entre deux objets. Ces mesures satisfont certaines conditions, telles que la non-négativité, la symétrie et l'inégalité triangulaire.

Certaines mesures de distance populaires incluent la distance euclidienne, la distance de Manhattan et la distance de Minkowski.

Calculons les distances entre paires de deux ensembles d'échantillons à l'aide de la fonction 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)

Sortie :

array([[4., 2.],
       [7., 5.],
       [12., 10.]])

Noyaux

Les noyaux sont des mesures de similarité entre deux objets. Ils peuvent être utilisés dans diverses algorithmes d'apprentissage automatique pour capturer les relations non linéaires entre les caractéristiques.

Scikit-learn fournit différentes fonctions de noyau, telles que le noyau linéaire, le noyau polynomial, le noyau sigmoïde, le noyau RBF, le noyau Laplacien et le noyau chi-carré.

Calculons les noyaux entre paires de deux ensembles d'échantillons à l'aide de la fonction 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)

Sortie :

array([[ 2.,  7.],
       [ 3., 11.],
       [ 5., 18.]])

Similarité cosinus

La similarité cosinus est une mesure de la similarité entre deux vecteurs. Elle calcule le cosinus de l'angle entre les vecteurs après les avoir normalisés.

Scikit-learn fournit la fonction cosine_similarity pour calculer la similarité cosinus entre des vecteurs.

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)

Sortie :

array([[0.89442719, 0.9486833 ],
       [0.93982748, 0.99388373],
       [0.99417134, 0.99705449]])

Noyau polynomial

Le noyau polynomial calcule la similarité entre deux vecteurs en considérant les interactions entre leurs dimensions.

Scikit-learn fournit la fonction polynomial_kernel pour calculer le noyau polynomial entre des vecteurs.

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)

Sortie :

array([[ 10.,  20.],
       [ 17.,  37.],
       [ 38.,  82.]])

Sommaire

Dans ce laboratoire, nous avons exploré le sous-module sklearn.metrics.pairwise de scikit-learn. Nous avons appris à connaître différentes mesures et noyaux entre paires, leurs définitions, et comment les utiliser pour calculer les distances et les affinités entre des échantillons.

En utilisant la fonction pairwise_distances, nous avons calculé les distances entre paires d'ensembles d'échantillons. En utilisant la fonction pairwise_kernels, nous avons calculé les noyaux entre paires d'ensembles d'échantillons en utilisant diverses fonctions de noyau.

Nous avons également exploré la fonction cosine_similarity pour calculer la similarité cosinus entre des vecteurs, et la fonction polynomial_kernel pour calculer le noyau polynomial.

Ces mesures et noyaux entre paires sont utiles dans diverses tâches d'apprentissage automatique, telles que le regroupement, la réduction de dimensionnalité, et l'analyse basée sur la similarité.

Sommaire

Félicitations ! Vous avez terminé le laboratoire sur les mesures entre paires. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.