Métricas de distância | Diferentes métricas de distância no aprendizado de máquina

Conteúdo

As métricas de distância são uma parte fundamental de vários algoritmos de aprendizado de máquina. Essas métricas de distância são usadas tanto no aprendizagem supervisionada como não supervisionado, geralmente para calcular a semelhança entre os pontos de dados.

Uma métrica de distância eficaz melhora o desempenho de nosso modelo de aprendizado de máquina, seja para classificar ou agrupar tarefas.

gráfico-6001193

Digamos que queremos criar clusters usando o algoritmo K-Means Clustering ou o algoritmo do vizinho mais próximo para resolver um problema de classificação ou regressão.. Como você definiria a semelhança entre as diferentes observações aqui? Como podemos saber que dois pontos são semelhantes entre si?

Isso acontecerá se suas características forem semelhantes, verdade? Quando traçamos esses pontos, estarão mais próximos um do outro à distância.

1i9iug40qfpx6x7tn8bfeuw-6881908

Portanto, podemos calcular a distância entre os pontos e, em seguida, definir a semelhança entre eles. Aqui está a pergunta de um milhão de dólares: Como calculamos essa distância e quais são as diferentes métricas de distância no aprendizado de máquina?

É isso que pretendemos responder neste artigo.. Vamos analisar 4 tipos de métricas de distância em aprendizado de máquina e entender como eles funcionam em Piton.

4 tipos de métricas de distância em aprendizado de máquina

  1. Distância euclidiana
  2. Distância de manhattan
  3. Distância de Minkowski
  4. Distância de Hamming

Vamos começar com a métrica de distância mais usada: a distância euclidiana.

1. Distância euclidiana

A distância euclidiana representa a menor distância entre dois pontos.

A maioria dos algoritmos de aprendizado de máquina, incluindo K-Means, use esta métrica de distância para medir a semelhança entre as observações. Digamos que temos dois pontos, conforme mostrado abaixo:

1p1baa9px8pimhuuz1v6dma-8404435

Então, a distância euclidiana entre esses dois pontos A e B será:

1rwxprdfs0g0w68yadw-6cw-7888659

Aqui está a fórmula para a distância euclidiana:

1_ftwbnr74rtewnquhpg2rg-5567623

Usamos esta fórmula quando se trata de 2 dimensões. Podemos generalizar isso para um espaço n-dimensional como:

1lhqbnp1grabz0viipm9uow-9440262

Onde,

  • n = número de dimensões
  • pi, qi = pontos de dados

Vamos codificar a distância euclidiana em Piton. Isso lhe dará uma melhor compreensão de como funciona essa métrica de distância..

Primeiro vamos importar as bibliotecas necessárias. Vou usar a biblioteca SciPy que contém códigos pré-escritos para a maioria das funções de distância usadas em Python:

screenshot-from-2020-02-18-12-33-34-1964729

Estes são os dois pontos de amostra que usaremos para calcular as diferentes funções de distância. Vamos agora calcular a distância euclidiana entre esses dois pontos:

screenshot-from-2020-02-18-12-35-24-7138774

É assim que podemos calcular a distância euclidiana entre dois pontos em Python. Agora vamos entender a métrica da segunda distância, a distância de manhattan.

2. Distância de manhattan

A distância de Manhattan é a soma das diferenças absolutas entre os pontos em todas as dimensões.

Podemos representar a distância de Manhattan como:

1kysowlz9d7vfwebyi8cudg-4498453

Uma vez que a representação acima é bidimensional, calcular a distância de Manhattan, vamos tomar a soma das distâncias absolutas nas direções xey. Então, a distância de Manhattan em um espaço bidimensional é dada como:

1i3kqozqyjq7fj5ihxplo5g-8774518

E a fórmula generalizada para um espaço n-dimensional é dada como:

19a3ni7-uq4njdqd4e1kxaa-2825350

Onde,

  • n = número de dimensões
  • pi, qi = pontos de dados

Agora, vamos calcular a distância de Manhattan entre os dois pontos:

screenshot-from-2020-02-18-12-38-12-3446472

tenha em conta que A distância de Manhattan também é conhecida como distância do quarteirão da cidade. SciPy tem uma função chamada Quarteirão que retorna a distância de Manhattan entre dois pontos.

Vejamos agora a seguinte métrica de distância: a distância de Minkowski.

3. Distância de Minkowski

A distância de Minkowski é a forma generalizada da distância euclidiana e de Manhattan.

A fórmula para a distância de Minkowski é dada como:

1fb22fnjrabguanpjcjweow-8974560

Aqui, p representa a ordem da norma. Vamos calcular a distância de Minkowski do pedido 3:

screenshot-from-2020-02-18-12-41-48-7543748

O parâmetro p da métrica de distância SciPy Minkowski representa a ordem da norma. Quando pedir (p) isto é 1, representará a distância de Manhattan e quando a ordem na fórmula acima for 2, representará a distância euclidiana.

Vamos verificar isso em Python:

screenshot-from-2020-02-18-12-44-35-8225818

Aqui, você pode ver que quando o pedido é 1, Minkowski e Manhattan Distance são iguais. Vamos também verificar a distância euclidiana:

screenshot-from-2020-02-18-12-47-48-8234857

Quando o pedido é 2, podemos ver que as distâncias Minkowski e Euclidiana são as mesmas.

Até agora, cobrimos as métricas de distância usadas ao lidar com variáveis ​​contínuas ou numéricas. Mas E se tivermos variáveis ​​categóricas? Como podemos decidir a semelhança entre variáveis ​​categóricas? É aqui que podemos usar outra métrica de distância chamada Distância de Hamming.

4. Distância de Hamming

A distância de Hamming mede a semelhança entre duas cordas do mesmo comprimento. A distância de Hamming entre duas strings do mesmo comprimentoéo número de posições onde os caracteres correspondentes são diferentes.

Vamos entender o conceito com um exemplo. Digamos que temos duas cordas:

“Euclidiana” e “Manhattan”

Uma vez que o comprimento dessas cordas é igual, podemos calcular a distância de Hamming. Iremos personagem por personagem e nos juntaremos às cadeias. O primeiro caractere de ambas as strings (e e m respectivamente) é diferente. de forma similar, o segundo caractere de ambas as strings (uya) é diferente. e assim por diante.

Olhe cuidadosamente: sete personagens são diferentes, enquanto dois personagens (os dois últimos personagens) eles são iguais:

1pfr13q1dva6qeaiwjkltaa-4855817

Portanto, a distância de Hamming aqui será 7. Observe que quanto maior for a distância de Hamming entre duas cordas, mais diferentes essas cordas serão (e vice-versa).

Vamos ver como podemos calcular a distância de Hamming de duas strings em Python. Primeiro, vamos definir duas strings que vamos usar:

Estas são as duas cordas “Euclidiana” e “Manhattan” que também vimos no exemplo. Vamos agora calcular a distância de Hamming entre essas duas cordas:

screenshot-from-2020-02-18-12-57-22-4707839

Como vimos no exemplo anterior, a distância de Hamming entre "euclidean" e "manhattan" é 7. Também vimos que a distância de Hamming só funciona quando temos cordas do mesmo comprimento.

Vamos ver o que acontece quando temos cadeias de comprimentos diferentes:

screenshot-from-2020-02-18-12-59-52-6766821

Você pode ver que os comprimentos de ambas as correntes são diferentes. Vamos ver o que vai acontecer quando tentarmos calcular a distância de Hamming entre essas duas cordas:

screenshot-from-2020-02-18-13-01-52-3346367

Isso gera um erro dizendo que os comprimentos das matrizes devem ser os mesmos. Por isso, A distância de Hamming só funciona quando temos strings ou matrizes do mesmo comprimento.

Estas são algumas das medidas de similaridade ou matrizes de distância que geralmente são usadas no Aprendizado de Máquina.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker