Як розрахувати відстань до манхеттена в python (з прикладами)


Манхеттенська відстань між двома векторами, A і B , обчислюється наступним чином:

Σ|A i – B i |

де i – i елемент кожного вектора.

Ця відстань використовується для вимірювання несхожості між двома векторами та зазвичай використовується в багатьох алгоритмах машинного навчання .

У цьому підручнику показано два способи обчислення манхеттенської відстані між двома векторами в Python.

Спосіб 1. Напишіть спеціальну функцію

У наступному коді показано, як створити спеціальну функцію для обчислення манхеттенської відстані між двома векторами в Python:

 from math import sqrt

#create function to calculate Manhattan distance 
def manhattan(a, b):
    return sum ( abs (val1-val2) for val1, val2 in zip (a,b))
 
#definevectors
A = [2, 4, 4, 6]
B = [5, 5, 7, 8]

#calculate Manhattan distance between vectors
manhattan(A,B)

9

Манхеттенська відстань між цими двома векторами виявляється рівною 9 .

Ми можемо підтвердити, що це правильно, швидко обчисливши відстань до Манхеттена вручну:

Σ|A i – B i | = |2-5| + |4-5| + |4-7| + |6-8| = 3 + 1 + 3 + 2 = 9 .

Спосіб 2: використовуйте функцію cityblock().

Ще один спосіб обчислити манхеттенську відстань між двома векторами — скористатися функцією cityblock() із пакету SciPy:

 from scipy. spatial . distance import cityblock

#definevectors
A = [2, 4, 4, 6]
B = [5, 5, 7, 8]

#calculate Manhattan distance between vectors
cityblock(A, B)

9

І знову манхеттенська відстань між цими двома векторами дорівнює 9 .

Зауважте, що ми також можемо використовувати цю функцію, щоб знайти манхеттенську відстань між двома стовпцями в pandas DataFrame:

 from scipy. spatial . distance import cityblock
import pandas as pd

#define DataFrame
df = pd. DataFrame ({' A ': [2, 4, 4, 6],
                   ' B ': [5, 5, 7, 8],
                   ' C ': [9, 12, 12, 13]})

#calculate Manhattan distance between columns A and B
cityblock(df. A , df. B )

9

Додаткові ресурси

Як розрахувати евклідову відстань у Python
Як обчислити відстань Хеммінга в Python
Як розрахувати відстань Левенштейна в Python
Як обчислити відстань Махаланобіса в Python

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *