Вычисление расстояния между двумя векторами — фундаментальная операция в различных областях, включая математику, физику, науку о данных и машинное обучение. В этой статье блога мы рассмотрим несколько методов вычисления расстояния между двумя векторами, а также приведем примеры кода на Python.
- Евклидово расстояние:
Евклидово расстояние — наиболее распространенный метод, используемый для измерения расстояния между двумя векторами. Он вычисляет расстояние по прямой между двумя точками в евклидовом пространстве.
Пример кода:
import numpy as np
def euclidean_distance(vector1, vector2):
return np.linalg.norm(vector1 - vector2)
vector1 = np.array([1, 2, 3])
vector2 = np.array([4, 5, 6])
distance = euclidean_distance(vector1, vector2)
print("Euclidean Distance:", distance)
- Манхэттенское расстояние.
Манхэттенское расстояние, также известное как расстояние городского квартала или норма L1, рассчитывает сумму абсолютных разностей между соответствующими элементами двух векторов.
Пример кода:
import numpy as np
def manhattan_distance(vector1, vector2):
return np.sum(np.abs(vector1 - vector2))
vector1 = np.array([1, 2, 3])
vector2 = np.array([4, 5, 6])
distance = manhattan_distance(vector1, vector2)
print("Manhattan Distance:", distance)
- Расстояние Минковского:
Расстояние Минковского является обобщением евклидова и манхэттенского расстояний. Это позволяет нам рассчитывать расстояние, используя разные p-нормы.
Пример кода:
import numpy as np
def minkowski_distance(vector1, vector2, p):
return np.linalg.norm(vector1 - vector2, ord=p)
vector1 = np.array([1, 2, 3])
vector2 = np.array([4, 5, 6])
distance = minkowski_distance(vector1, vector2, p=3)
print("Minkowski Distance:", distance)
- Косинусное сходство.
Косинусное сходство измеряет косинус угла между двумя векторами, обеспечивая меру сходства, а не меру расстояния. Его часто используют в системах анализа текста и рекомендательных системах.
Пример кода:
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
def cosine_distance(vector1, vector2):
return 1 - cosine_similarity(vector1.reshape(1, -1), vector2.reshape(1, -1))
vector1 = np.array([1, 2, 3])
vector2 = np.array([4, 5, 6])
distance = cosine_distance(vector1, vector2)
print("Cosine Distance:", distance)
В этой статье мы рассмотрели несколько методов расчета расстояния между двумя векторами: евклидово расстояние, манхэттенское расстояние, расстояние Минковского и косинусное подобие. Эти методы предлагают разные точки зрения на измерение несходства или сходства между векторами, в зависимости от контекста рассматриваемой проблемы. Понимание этих методов и умение их применять имеют решающее значение в различных областях науки и техники.
Эта статья, предоставляя различные методы расчета расстояния между векторами и сопровождающие их примеры кода, призвана помочь читателям лучше понять эти фундаментальные концепции и способы их реализации на практике.