Distância de Minkowski: guia completa

As métricas de distância formam o cerne de muitos algoritmos em ciências de dados e aprendizado de máquina, permitindo a medição da similaridade ou dissimilaridade entre pontos de dados. Neste guia, exploraremos os fundamentos da distância de Minkowski, suas propriedades matemáticas e suas implementações. Examinaremos como ela se relaciona com outras medidas de distância comuns e demonstraremos seu uso através de exemplos de código em Python e R.

Se você está desenvolvendo algoritmos de aglomerados, trabalhando em detecção de anomalias, ou afinando modelos de classificação, entender a distância de Minkowski pode aprimorar seu enfoque em análise de dados e desenvolvimento de modelos. Vamos dar uma olhada.

O que é a Distância de Minkowski?

A distância de Minkowski é uma métrica versátil usada em espaços vetoriais normados, nomeada em homenagem ao matemático alemão Hermann Minkowski. É uma generalização de várias medidas de distância bem conhecidas, tornando-a um conceito fundamental em várias áreas, como matemática, ciência da computação e análise de dados.

No seu cerne, a distância de Minkowski fornece uma maneira de medir a distância entre dois pontos em um espaço multi-dimensional. O que a torna particularmente útil é sua capacidade de abranger outras medidas de distância como casos especiais, principalmente através de um parâmetro p. Este parâmetro permite que a distância de Minkowski se adapte a diferentes espaços de problemas e características de dados. A fórmula geral para a distância de Minkowski é:

Onde:

  • x e y são dois pontos em um espaço de dimensão n

  • p é um parâmetro que determina o tipo de distância (p ≥ 1)

  • |xi - yi| representa a diferença absoluta entre as coordenadas de x e y em cada dimensão

A distância de Minkowski é útil por duas razões principais. Uma delas é que dá flexibilidade para alternar entre distância de Manhattan ou Euclidiana conforme necessário. Em segundo lugar, reconhece que nem todos os conjuntos de dados (pense em espaços de alta dimensão) são bem-sucedidos com distância puramente de Manhattan ou puramente Euclidiana.

Na prática, o parâmetro p é normalmente escolhido incorporando um workflow de treinamento/teste. Testando diferentes valores de p durante a validação cruzada, pode determinar qual valor fornece o melhor desempenho do modelo para seu conjunto de dados específico.

Como a Distância de Minkowski Funciona

Vamos olhar para como a distância de Minkowski se relaciona com outras fórmulas de distância e depois percorrer um exemplo.

Generalização de outros indicadores de distância

A primeira coisa a considerar é como a fórmula de distância de Minkowski contém dentro dela as fórmulas para distância de Manhattan, Euclidiana e Chebyshev.

Distância de Manhattan (p = 1):

Quando p é definido como 1, a distância de Minkowski se torna a distância de Manhattan.

Também conhecida como distância de quadra ou norma L1, Distância de Manhattan mede a soma de diferenças absolutas.

Distância Euclidiana (p = 2):

Quando p é definido como 2, a distância de Minkowski se torna a distância Euclidiana.

Distância euclidiana é a métrica de distância mais comum, representando a distância reta entre dois pontos.

Distância de Chebyshev (p → ∞):

Distância de Chebyshev, também conhecida como distância de tabuleiro de xadrez, mide a diferença máxima em qualquer dimensão.

Exemplo de trabalho

Para realmente entender a funcionalidade e o poder da distância de Minkowski, vamos trabalhar the um exemplo. Esta exploração nos ajudará a entender como o parâmetro p afeta a calculação e a interpretação de distâncias em espaços multidimensionais.

Consideremos dois pontos em um espaço 2D:

  • Ponto A: (2, 3)
  • Ponto B: (5, 7)

Vamos calcular a distância de Minkowski entre estes pontos para diferentes valores de p.

O parâmetro p na fórmula de distância de Minkowski controla a sensibilidade da métrica a diferenças individuais em componentes:

  • Quando p=1: Todas as diferenças contribuem linearmente.
  • Quando p=2: As diferenças maiores têm the impacto mais significativo devido ao quadrado.
  • Quando p>2: Ainda maior ênfase é colocada em diferenças maiores.
  • Quando p→∞: Apenas a diferença máxima entre todas as dimensões importa.

Ao aumentar o p, a distância de Minkowski normalmente decresce, aproximando-se da distância de Chebyshev. Isso ocorre porque valores maiores de p dão mais peso à maior diferença e menos às diferenças menores.

Para visualizar como valores diferentes de p afetam a calculação da distância entre os nossos pontos A(2, 3) e B(5, 7), vamos examinar o seguinte gráfico:

Observando o gráfico, podemos ver como a medida de distância muda à medida que p aumenta:

  • A distância de Manhattan (p=1), representada pela cor verde, dá a maior distância, já que segue estritamente a grade.
  • A distância de Euclides (p=2), mostrada pela linha laranja reta, fornece uma linha direta e reta.
  • A distância de Chebyshev (p=∞), representada pelas linhas pontilhadas vermelhas, se concentra apenas na maior diferença de coordenadas, criando uma rota que se move de maneira máxima em uma dimensão antes de abordar a outra.
  • A distância de Minkowski com p=3 na cor azul escura mostra uma leve curva, sugerindo a transição entre as distâncias de Euclides e Chebyshev.

Esta visualização nos ajuda a entender porque é que diferentes valores de p podem ser escolhidos para várias aplicações. Por exemplo, a distância de Manhattan poderia ser mais apropriada em problemas de navegação em cidades, enquanto a distância de Euclides é frequentemente usada em cálculos de espaço físico. Valores de p maiores, como no caso de Minkowski p=3, podem ser úteis em situações onde as diferenças maiores devem ser destacadas, e a distância de Chebyshev poderia ser preferida quando a diferença máxima em qualquer dimensão é o fator mais crítico.

Aplicações da Distância de Minkowski

A distância de Minkowski, com seu parâmetro ajustável p, é uma ferramenta flexível usada em várias áreas. Alterando p, podemos personalizar como medimos a distância entre pontos, tornando-a adequada para diferentes tarefas. A seguir, estão quatro aplicações onde a distância de Minkowski desempenha um papel importante.

Aprendizado de máquina e ciência dos dados

No aprendizado de máquina e ciência dos dados, a distância de Minkowski é fundamental para algoritmos que dependem de medir a similaridade ou dissimilaridade entre pontos de dados. Um exemplo proeminente é o algoritmo k-Melhores Vizinhos (k-NN), que classifica pontos de dados com base nas categorias dos seus vizinhos mais próximos. Usando a distância de Minkowski, podemos ajustar o parâmetro p para mudar como calculamos a “proximidade” entre pontos.

Reconhecimento de padrões

O reconhecimento de padrões envolve identificar padrões e regularidades em dados, como a reconhecimento de escrita manual ou detecção de features faciais. Neste contexto, a distância de Minkowski mede a diferença entre vetores de features representando padrões. Por exemplo, na reconhecimento de imagens, cada imagem pode ser representada por um vetor de valores de pixels. Calcular a distância de Minkowski entre estes vetores permite que quantifiquemos a similaridade ou diferença das imagens.

Ajustando p, é possível controlar a sensibilidade da medida de distância para as diferenças em características específicas. Um p menor pode considerar as diferenças globais entre todos os pixels, enquanto um p maior poderia enfatizar as diferenças significativas em certas regiões da imagem.

Detecção de anomalias

A detecção de anomalias visa identificar pontos de dados que se desviarem significativamente do padrão, o que é crucial em áreas como detecção de fraude, segurança de rede e detecção de falhas em sistemas. A distância de Minkowski é usada para medir a quantidade de diferença the um ponto de dados está de outros no conjunto de dados. Pontos com grandes distâncias são potenciais anomalias. Ao escolher um p apropriado, os analistas podem melhorar a sensibilidade dos sistemas de detecção de anomalias para os tipos de desvios que são mais relevantes para o seu contexto específico.

Geometria computacional e análise espacial

Na geometria computacional e análise espacial, a distância de Minkowski é usada para calcular distâncias entre pontos no espaço, que é a base para muitos algoritmos geométricos. Por exemplo, a detecção de colisões nesses domínios depende da distância de Minkowski para determinar quando objetos estão próximos o suficiente para interagir. Ao ajustar p, os desenvolvedores podem criar diversas fronteiras de colisão, variando de angular (menor p) a arredondado (maior p).

Além da detecção de colisões, a distância de Minkowski pode ser útil em aglomerados espaciais e análise de formas. Variando o valor de p permite que investigadores emphasizes diferentes aspectos das relações espaciais, de distâncias de bairro a similaridades de formas globais.

Propriedades Matemáticas da Distância de Minkowski

A distância de Minkowski não é apenas uma ferramenta versátil em aplicações práticas, mas também um importante conceito em teoria matemática, particularmente no estudo de espaços métricos e normas.

Propriedades do espaço métrico

A distância de Minkowski satisfaz as quatro propriedades essenciais necessárias para uma função ser considerada uma métrica em um espaço métrico:

  • Não-negatividade: A distância de Minkowski entre qualquer dois pontos é sempre não-negativa, d(x,y)≥0. Isso é óbvio, já que é a raiz p-ésima de uma soma de termos não-negativos (valores absolutos elevados à potência p).
  • Identidade dos Invisíveis: A distância de Minkowski entre dois pontos é zero se e somente se os dois pontos forem idênticos. Matematicamente, d(x,y) = 0 se e somente se x=y. Isto se segue porque a diferença absoluta entre componentes idênticos é zero.
  • Simetria: A distância de Minkowski é simétrica, o que significa d(x,y)=d(y,x). Esta propriedade se mantém porque a ordem de subtração nos termos de valor absoluto não afeta o resultado.
  • Inércia triangular: A distância de Minkowski satisfaz a inércia triangular, que afirma que para qualquer três pontos x, y e z, a distância de x até z é, no máximo, a soma da distância de x até y e de y até z; formalmente, d(x,z)≤d(x,y)+d(y,z). Esta propriedade é menos intuitiva para provar diretamente a partir da fórmula e normalmente requer matemática mais avançada, mas essencialmente garante que seguir uma rota direta entre dois pontos é a rota mais curta.

Generalização da Norma

A distância de Minkowski funciona como um framework geral que unifica várias formas de medir distâncias em espaços matemáticos através do conceito de normas. Em termos simples, uma norma é uma função que atribui uma medida não negativa de comprimento ou tamanho a um vetor em um espaço vetorial, medindo essencialmente “como longo” o vetor é. Ao ajustar o parâmetro p na fórmula da distância de Minkowski, podemos transitar suavemente entre diferentes normas, cada uma fornecendo uma metodologia única para calcular o tamanho de vetores.

Por exemplo, quando p=1, a distância de Minkowski torna-se anorma de Manhattan, que mede a distância como a soma de diferenças absolutas alongadas em cada dimensão — imaginem navegando em uma grade de ruas da cidade. Com p=2, ela transforma-se emnorma euclidiana, calculando a distância reta (“como voa o pássaro”) entre pontos. À medida que p aproxima-se do infinito, ela converge para anorma de Chebyshev, onde a distância é determinada pela maior diferença simples entre dimensões. Esta flexibilidade permite que a distância de Minkowski se adapte a vários contextos matemáticos e práticos, tornando-a uma ferramenta versátil para medir distâncias em diferentes cenários.

Calcular a Distância de Minkowski em Python e R

Vamos explorar as implementações de cálculos de distância de Minkowski usando Python e R. Examinaremos pacotes e bibliotecas disponíveis prontamente que podem conseguir isso.

Exemplo em Python

Para calcular a distância de Minkowski em Python, podemos usar a biblioteca SciPy, que fornece implementações eficientes de várias métricas de distância. Aqui está um exemplo que calcula a distância de Minkowski para diferentes valores de p:

import numpy as np from scipy.spatial import distance # Ponto de exemplo point_a = [2, 3] point_b = [5, 7] # Diferentes valores de p p_values = [1, 2, 3, 10, np.inf] print("Minkowski distances using SciPy:") for p in p_values: if np.isinf(p): # Para p = infinito, use a distância de Chebyshev dist = distance.chebyshev(point_a, point_b) print(f"p = ∞, Distance = {dist:.2f}") else: dist = distance.minkowski(point_a, point_b, p) print(f"p = {p}, Distance = {dist:.2f}")

Ao executar este código, os leitores podem observar como a distância muda com diferentes valores de p, reforçando os conceitos discutidos anteriormente no artigo.

Minkowski distances using SciPy: p = 1, Distance = 7.00 p = 2, Distance = 5.00 p = 3, Distance = 4.50 p = 10, Distance = 4.02 p =, Distance = 4.00

Este código demonstra:

  1. Como usar as funções de distância de SciPy para distâncias de Minkowski e de Chebyshev.
  2. Calcular distâncias para vários valores de p, incluindo infinito.
  3. A relação entre a distância de Minkowski e outras medidas (Manhattan, Euclidiana, Chebyshev).

Exemplo em R

Para R, nós usaremos a função dist() da biblioteca stats:

# Defina a função de distância de Minkowski usando stats::dist minkowski_distance <- function(x, y, p) { points <- rbind(x, y) if (is.infinite(p)) { # Para p = Inf, use o método = "maximum" para a distância de Chebyshev distance <- stats::dist(points, method = "maximum") } else { distance <- stats::dist(points, method = "minkowski", p = p) } return(as.numeric(distance)) } # Exemplo de uso point_a <- c(2, 3) point_b <- c(5, 7) # Valores de p diferentes p_values <- c(1, 2, 3, 10, Inf) cat("Minkowski distances between points A and B using stats::dist:\n") for (p in p_values) { distance <- minkowski_distance(point_a, point_b, p) if (is.infinite(p)) { cat(sprintf("p = ∞, Distance = %.2f\n", distance)) } else { cat(sprintf("p = %g, Distance = %.2f\n", p, distance)) } }

Este código demonstra:

  1. Como criar uma função minkowski_distance usando a função dist() do pacote stats.

  2. Manuseio de diferentes valores de p, incluindo infinito para a distância de Chebyshev.

  3. Calculo da distância de Minkowski para diferentes valores de p.

  4. Formatação do resultado para exibição das distâncias arredondadas para 2 casas decimais.

A saída deste código será:

Minkowski distances between points A and B using stats::dist: p = 1, Distance = 7.00 p = 2, Distance = 5.00 p = 3, Distance = 4.50 p = 10, Distance = 4.02 p =, Distance = 4.00

Esta implementação em R fornece um contraponto ao exemplo em Python, permitindo que os leitores vejam como a distância de Minkowski pode ser calculada em diferentes ambientes de programação.

Conclusão

A distância de Minkowski fornece uma abordagem flexível e adaptável para medir distâncias em espaços multi-dimensionais. Sua capacidade de generalizar outras distâncias comuns através do parâmetro p torna-o uma ferramenta valiosa em vários campos da ciência de dados e aprendizagem de máquina. Ajustando p, os profissionais podem personalizar suas medições de distância às características específicas dos dados e às exigências de seus projetos, potencialmente melhorando os resultados nas tarefas que vão de agrupamento à detecção de anomalias.

Enquanto você aplica a distância de Minkowski em seu próprio trabalho, nós encorajamos você a experimentar diferentes valores de p e observar o impacto deles em seus resultados. Para aqueles que procuram aprofundar seu entendimento e habilidades, recomendamos explorar o curso Criação de Workflows de Aprendizado de Máquina em Python e considerar o nosso programa de certificação de Cientista de Dados. Esses recursos ajudam você a construir sua base de conhecimento sobre métricas de distância e a aplicá-las eficazmente em várias situações.

Source:
https://www.datacamp.com/tutorial/minkowski-distance