Как рассчитать сходство косинусов в R


Косинусное сходство — это мера сходства между двумя векторами пространства внутреннего произведения.

Для двух векторов, A и B, косинусное сходство вычисляется как:

Подобие косинуса = ΣA i B i / (√ΣA i 2 √ΣB i 2 )

В этом руководстве объясняется, как вычислить косинусное сходство между векторами в R с помощью функции cosine() из библиотеки lsa .

Косинусное сходство между двумя векторами в R

Следующий код показывает, как вычислить косинусное сходство между двумя векторами в R:

library (lsa)

#define vectors
a <- c(23, 34, 44, 45, 42, 27, 33, 34)
b <- c(17, 18, 22, 26, 26, 29, 31, 30)

#calculate Cosine Similarity
cosine(a, b)

 [,1]
[1,] 0.965195

Косинусное сходство между двумя векторами оказывается равным 0,965195 .

Косинусное подобие матрицы в R

Следующий код показывает, как вычислить косинусное сходство между матрицей векторов:

library (lsa)

#define matrix
a <- c(23, 34, 44, 45, 42, 27, 33, 34)
b <- c(17, 18, 22, 26, 26, 29, 31, 30)
c <- c(34, 35, 35, 36, 51, 29, 30, 31)

data <- cbind(a, b, c)

#calculate Cosine Similarity
cosine(data)

 a b c
a 1.0000000 0.9651950 0.9812406
b 0.9651950 1.0000000 0.9573478
c 0.9812406 0.9573478 1.0000000

Вот как интерпретировать вывод:

  • Косинусное сходство между векторами a и b равно 0,9651950 .
  • Косинусное сходство между векторами a и c равно 0,9812406 .
  • Косинусное сходство между векторами b и c равно 0,9573478 .

Заметки

1. Функция cosine() будет работать с квадратной матрицей любого размера.

2. Функция cosine() будет работать с матрицей, но не с фреймом данных. Однако вы можете легко преобразовать фрейм данных в матрицу в R, используя функцию as.matrix() .

3. Обратитесь кэтой странице Википедии, чтобы узнать больше о сходстве косинусов.

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.