Métricas e Núcleos de Pares no Scikit-Learn

Beginner

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

Introdução

Neste laboratório, exploraremos o submódulo sklearn.metrics.pairwise no scikit-learn. Este módulo fornece utilidades para calcular distâncias e afinidades em pares entre conjuntos de amostras.

Vamos aprender sobre diferentes métricas e núcleos em pares, suas definições e como utilizá-los no scikit-learn.

Dicas da Máquina Virtual

Após o arranque da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para praticar.

Às vezes, pode ser necessário esperar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante o aprendizado, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos prontamente o problema para si.

Métricas de Distância

As métricas de distância são funções que medem a dissimilaridade entre dois objetos. Estas métricas satisfazem certas condições, como não negatividade, simetria e a desigualdade triangular.

Algumas métricas de distância populares incluem a distância euclidiana, a distância de Manhattan e a distância de Minkowski.

Vamos calcular as distâncias em pares entre dois conjuntos de amostras usando a função 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]])

## Calcular as distâncias em pares entre X e Y
distances = pairwise_distances(X, Y, metric='manhattan')
print(distances)

Saída:

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

Núcleos

Os núcleos são medidas de similaridade entre dois objetos. Podem ser usados em vários algoritmos de aprendizagem de máquina para capturar relações não lineares entre características.

O scikit-learn fornece diferentes funções de núcleo, como núcleo linear, núcleo polinomial, núcleo sigmóide, núcleo RBF, núcleo Laplaciano e núcleo qui-quadrado.

Vamos calcular os núcleos em pares entre dois conjuntos de amostras usando a função 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]])

## Calcular os núcleos em pares entre X e Y usando o núcleo linear
kernels = pairwise_kernels(X, Y, metric='linear')
print(kernels)

Saída:

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

Similaridade do Cosseno

A similaridade do cosseno é uma medida da similaridade entre dois vetores. Calcula o cosseno do ângulo entre os vetores após normalizá-los.

O scikit-learn fornece a função cosine_similarity para calcular a similaridade do cosseno entre vetores.

from sklearn.metrics.pairwise import cosine_similarity

X = np.array([[2, 3], [3, 5], [5, 8]])
Y = np.array([[1, 0], [2, 1]])

## Calcular a similaridade do cosseno entre X e Y
similarity = cosine_similarity(X, Y)
print(similarity)

Saída:

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

Núcleo Polinomial

O núcleo polinomial calcula a similaridade entre dois vetores considerando as interações entre suas dimensões.

O scikit-learn fornece a função polynomial_kernel para calcular o núcleo polinomial entre vetores.

from sklearn.metrics.pairwise import polynomial_kernel

X = np.array([[2, 3], [3, 5], [5, 8]])
Y = np.array([[1, 0], [2, 1]])

## Calcular o núcleo polinomial entre X e Y
kernel = polynomial_kernel(X, Y, degree=2)
print(kernel)

Saída:

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

Resumo

Neste laboratório, exploramos o submódulo sklearn.metrics.pairwise do scikit-learn. Aprendemos sobre diferentes métricas e núcleos de pares, suas definições e como utilizá-los para calcular distâncias e afinidades entre amostras.

Utilizando a função pairwise_distances, calculamos as distâncias de pares entre conjuntos de amostras. Usando a função pairwise_kernels, calculamos os núcleos de pares entre conjuntos de amostras usando várias funções de núcleo.

Também exploramos a função cosine_similarity para calcular a similaridade do cosseno entre vetores e a função polynomial_kernel para calcular o núcleo polinomial.

Essas métricas e núcleos de pares são úteis em diversas tarefas de aprendizado de máquina, como agrupamento, redução de dimensionalidade e análise baseada em similaridade.

Resumo

Parabéns! Você concluiu o laboratório de Métricas de Pares. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.