如何在Microsoft Excel中创建用于协同过滤的项目和用户-用户矩阵?

时间:2018-09-28 19:04:37

标签: excel vba collaborative-filtering recommender-systems

我想了解用于协作过滤的项目和用户-用户矩阵,以及它与基于内容的过滤有何不同。

项目用户:

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

从电影用户矩阵开始,如何使用Visual Basic for Applications在Microsoft Excel中创建简单的项目和用户矩阵?

Item-Item:

     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

此刻,我正在使用Microsoft Excel函数CORREL计算User1和UserN之间的相关系数。我有以下Visual Basic for Applications代码来计算余弦相似度。 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)

在此线程中,给出了一个简单的示例,用于项目矩阵。 Collaborative Filtering: Non-Personalized item-to-item similarity

0 个答案:

没有答案