Косинусное расстояние
Принцип подобия косинусов
- Значение косинуса угла между двумя векторами в векторном пространстве используется как мера различия между двумя индивидуумами.Чем ближе значение к 1, тем ближе угол к 0°, то есть больше похоже два вектора равны, что называется косинусом.
- Формула подобия косинусов выглядит следующим образом:

Практическое применение косинуса
- Теперь предположим: пользователю А нравятся a, b, d; пользователю B нравятся b, c, e; пользователю C нравятся c, d; пользователю D нравятся b, c, d; пользователю E нравятся a, d. пользователям нравится каждый элемент, где «1» означает «нравится», «0» означает «не нравится». Примечание. Под поведением «нравится» здесь можно понимать взаимодействие, инициированное пользователем с продуктом, например, щелчок, комментарий, лайк, добавление в избранное и т. д. детали следующим образом:

- Используйте формулу теоремы косинусов, упомянутую выше, чтобы вычислить сходство между двумя элементами.Например, если элементы a и b рассматриваются как два вектора в многомерном пространстве, есть: a (1,0,0,0,1 ) ; b(1,1,0,1,0), поэтому сходство между элементом a и элементом b составляет:

Код
import numpy as np
vec1 = np.array([1, 3, 4])
vec2 = np.array([4, 2, 4])
d = np.dot(vec1,vec2)/(np.linalg.norm(vec1) * (np.linalg.norm(vec2)))
Расстояние скалярного произведения (точечный продукт)
Принцип подобия скалярного произведения
- Произведение длины двух векторов на косинус их угла
- Формула расчета скалярного произведения: a * b = |a|* |b|*cosθ
- Скалярное произведение, также известное как внутреннее произведение и количественное произведение векторов, представляет собой произведение вектора на длину его проекции на другой вектор; это скаляр.
- Скалярное произведение отражает "похожесть" двух векторов. Чем более "похожи" два вектора, тем больше их скалярное произведение.
Код
import numpy as np
vec1 = np.array([1, 3, 4])
vec2 = np.array([4, 2, 4])
d = np.dot(vec1, vec2)
Евклидово расстояние
Евклидов принцип подобия
- Евклидово расстояние (также называемое евклидовой метрикой) относится к истинному расстоянию между двумя точками в m-мерном пространстве или к естественной длине вектора (то есть к расстоянию от точки до начала координат).
- Евклидова формула подобия выглядит следующим образом:

Евклидово практическое применение
- В случае полных данных (нет отсутствующих данных измерений) единицы измерения между измерениями согласованы, в противном случае требуется стандартизация
Код
import numpy as np
vec1 = np.array([1, 3, 4])
vec2 = np.array([4, 2, 4])
d = np.linalg.norm(vec1-vec2, ord=2)
# 或
d = np.sqrt(np.sum(np.square(vec1-vec2)))
Манхэттенское расстояние
Манхэттенский принцип подобия
- Сумма расстояний проекции отрезка, образованного двумя точками на оси, на фиксированную прямоугольную систему координат евклидова пространства
- Формула подобия Манхэттена выглядит следующим образом:

Практическое применение Манхэттена
- В случае полных данных (нет отсутствующих размерных данных) пространство необходимо разделить на сетки, а затем измерить в единицах сетки, допуская 4 направления.
Код
import numpy as np
vec1 = np.array([1, 3, 4])
vec2 = np.array([4, 2, 4])
d = np.linalg.norm(vec1-vec2, ord=1)
# 或
d = np.sum(np.abs(vec1-vec2))
приложение: