Pandas: calcula la distancia euclidiana entre dos series

Hay muchas métricas de distancia que se utilizan en varios algoritmos de aprendizaje automático. Uno de ellos es la distancia euclidiana. La distancia euclidiana es la métrica de distancia más utilizada y es simplemente una distancia en línea recta entre dos puntos. La distancia euclidiana entre puntos viene dada por la fórmula:

  \[d(x, y) = \sqrt{\sum_{i=0}^{n}(x_{i}-y_{i})^{2}}\]

Podemos usar varios métodos para calcular la distancia euclidiana entre dos series. Aquí hay algunos métodos para lo mismo:
Ejemplo 1:

import pandas as pd
import numpy as np
  
  
# create pandas series
x = pd.Series([1, 2, 3, 4, 5])
y = pd.Series([6, 7, 8, 9, 10])
  
# here we are computing every thing
# step by step
p1 = np.sum([(a * a) for a in x])
p2 = np.sum([(b * b) for b in y])
  
# using zip() function to create an
# iterator which aggregates elements 
# from two or more iterables
p3 = -1 * np.sum([(2 * a*b) for (a, b) in zip(x, y)])
dist = np.sqrt(np.sum(p1 + p2 + p3))
  
print("Series 1:", x)
print("Series 2:", y)
print("Euclidean distance between two series is:", dist)

Producción :

Ejemplo 2:

import pandas as pd
import numpy as np
  
  
x = pd.Series([1, 2, 3, 4, 5])
y = pd.Series([6, 7, 8, 9, 10])
  
# zip() function creates an iterator
# which aggregates elements from two 
# or more iterables
dist = np.sqrt(np.sum([(a-b)*(a-b) for a, b in zip(x, y)]))    
  
print("Series 1:")
print(x)
  
print("Series 2:")
print(y)
  
print("Euclidean distance between two series is:", dist)

Producción :

Ejemplo 3: En este ejemplo estamos usando la función np.linalg.norm() que devuelve una de ocho normas de array diferentes.

import pandas as pd
import numpy as np
  
  
x = pd.Series([1, 2, 3, 4, 5])
y = pd.Series([6, 7, 8, 9, 10])
dist = (np.linalg.norm(x-y))
  
print("Series 1:")
print(x)
  
print("Series 2:")
print(y)
  
print("Euclidean distance between two series is:", dist)

Producción :

Ejemplo 4: Probemos ahora con una serie más grande:

import pandas as pd
import numpy as np
  
  
x = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = pd.Series([12, 8, 7, 5, 6, 5, 3, 9, 7, 1])
dist = np.sqrt(np.sum([(a-b)*(a-b) for a, b in zip(x, y)]))
  
print("Series 1:")
print(x)
  
print("Series 2:")
print(y)
  
print("Euclidean distance between two series is:", dist)

Producción :

Publicación traducida automáticamente

Artículo escrito por devanshigupta1304 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 *