【发布时间】:2019-05-06 16:47:57
【问题描述】:
这个想法是用户对不同的项目留下喜欢-不喜欢,我需要获取与所选用户(USER_ID = 1),确定它们的相似性。
RATING Column:
1 = like,
0 = dislike
全表:
+---------+---------+--------+--------------------------------------------------+
| USER_ID | ITEM_ID | RATING | -EXAMPLE- |
+---------+---------+--------+--------------------------------------------------+
| 1 | 1 | 1 |-+
| 1 | 2 | 1 | |
| 1 | 3 | 1 | +-[1,1,1,0,0] user_1 vector of ratings
| 1 | 4 | 0 | | | | |
| 1 | 5 | 0 |-+ | | |
| 3 | 1 | 1 |----+ + + total_match with user_1 = 3 [1,0,0]
| 3 | 2 | 0 | | |
| 3 | 3 | 0 | | |
| 3 | 4 | 0 |----------+ |
| 3 | 5 | 0 |------------+
| 4 | 1 | 1 |
| 4 | 2 | 1 |
| 4 | 3 | 1 |
| 4 | 4 | 0 |
| 4 | 5 | 0 |
+---------+---------+--------+
匹配计算:
user_3 likes_match with user_1 = 1
user_3 dislikes_match with user_1 = 2
total_match = likes_match + dislikes_match = 3
如何进行 SQL 查询以获得以下结果:
+---------+-------------+----------------+-------------+
| user_id | likes_match | dislikes_match | total_match |
+---------+-------------+----------------+-------------+
| 3 | 1 | 2 | 3 |
| 4 | 3 | 2 | 5 |
+---------+-------------+----------------+-------------+
有什么想法吗?
【问题讨论】:
-
您熟悉自联接的概念吗?
标签: sql vector recommendation-engine collaborative-filtering