Как создать элемент-элемент и пользовательскую матрицу для совместной фильтрации в Microsoft Excel? - PullRequest
0 голосов
/ 28 сентября 2018

Я хочу понять матрицы элемент-элемент и пользователь-пользователь для совместной фильтрации и чем она отличается от контентной фильтрации.

Элемент-пользователь:

 User1  User2 ... UserN
 Movie1  0        1   ...  0
 Movie2  1        1   ...  0 
  .
  .
  .
 MovisM  1        0   ...  0

Начиная сматрицу фильмов и пользователей, как я могу создать простые матрицы элементов элементов и пользователей в Microsoft Excel с помощью Visual Basic для приложений?

Элемент элементов:

     Movie1  Movie2 ... MovieN
 Movie1  0        1   ...  0
 Movie2  1        1   ...  0 
  .
  .
  .
 MovieM  1        0   ...  0

Пользователь-пользователь:

     User1  User2 ... UserN
 User1  0        1   ...  0
 User2  1        1   ...  0 
  .
  .
  .
 UserM  1        0   ...  0

В данный момент я вычисляю коэффициент корреляции между User1 и UserN с помощью функции Microsoft Excel CORREL.У меня есть следующий код Visual Basic для приложений для расчета косинусного сходства.Что очень хорошо объяснено здесь http://blog.christianperone.com/2013/09/machine-learning-cosine-similarity-for-vector-space-models-part-iii/

Function cosSim(a As Variant, b As Variant) As Variant
Dim wf As Object
Set wf = WorksheetFunction
On Error Resume Next
cosSim = wf.SumProduct(a, b) / Sqr(wf.SumSq(a)) / Sqr(wf.SumSq(b))
If Err <> 0 Then cosSim = CVErr(xlErrValue)
End Function

Использование:

=cosSim({1,2,3}, {4,-5,6})
=cosSim(A1:A3, B1:B3)

В этой теме дан простой пример для матрицы элемент-элемент. Совместная фильтрация: неперсонализированное сходство элементов от элемента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...