Я хочу понять матрицы элемент-элемент и пользователь-пользователь для совместной фильтрации и чем она отличается от контентной фильтрации.
Элемент-пользователь:
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)
В этой теме дан простой пример для матрицы элемент-элемент. Совместная фильтрация: неперсонализированное сходство элементов от элемента