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.