Как рассчитать сходство косинусов в 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. Обратитесь кэтой странице Википедии, чтобы узнать больше о сходстве косинусов.