Distancia de Minkowski en Python

La distancia de Minkowski es una métrica en un espacio vectorial normado. La distancia de Minkowski se utiliza para la similitud de distancia del vector. Dados dos o más vectores, encuentre la similitud de distancia de estos vectores.

Principalmente, la distancia de Minkowski se aplica en el aprendizaje automático para descubrir la similitud de la distancia.

Ejemplos: 

Input : vector1 = 0 2 3 4
        vector2 = 2, 4, 3, 7
        p = 3

Output : distance1 = 3.5033

Input : vector1 = 1, 4, 7, 12, 23
        vector2 = 2, 5, 6, 10, 20
        p = 2

Output : distance2 = 4.0

Nota: aquí la distancia 1 y la distancia 2 son casi iguales, por lo que estarán en la misma región cercana.  

Python3

# Python3 program to find Minkowski distance
 
# import math library
from math import *
from decimal import Decimal
 
# Function distance between two points
# and calculate distance value to given
# root value(p is root value)
def p_root(value, root):
     
    root_value = 1 / float(root)
    return round (Decimal(value) **
             Decimal(root_value), 3)
 
def minkowski_distance(x, y, p_value):
     
    # pass the p_root function to calculate
    # all the value of vector parallelly
    return (p_root(sum(pow(abs(a-b), p_value)
            for a, b in zip(x, y)), p_value))
 
# Driver Code
vector1 = [0, 2, 3, 4]
vector2 = [2, 4, 3, 7]
p = 3
print(minkowski_distance(vector1, vector2, p))

Producción : 

3.503

Referencia: 
https://en.wikipedia.org/wiki/Minkowski_distance
 

Publicación traducida automáticamente

Artículo escrito por shrikanth13 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *