【问题标题】:Calculating Slope One differentials from MongoDB从 MongoDB 计算斜率一的差异
【发布时间】:2013-08-05 17:10:57
【问题描述】:

我的培训数据库中有 3 个集合——用户、企业和评论。我想使用斜率一来预测其他项目的评级,但我不确定如何最好地从 MongoDB 收集企业之间的评级差异。

我在评论集合中有 200,000 个评分,我只想比较具有相同类别的企业。因此,我找到了所有对这些类别下的企业进行评论的用户。

business = businesses.find({'categories':{"$in" : business_categories}},{'business_id'})

for biz in all_businesses:
    biz_list.append(biz['business_id'])
reviews = training_reviews.find({'business_id':{"$in" : biz_list}})

for review in reviews:
    review_list.append(review['user_id'])

available_users = users.find({'user_id':{"$in": review_list}})

拥有用户后,我需要建立一个包含他们所有评分的矩阵,以便计算每个业务之间的差异。我的最小尺寸矩阵将是 10k x 10k,并且因为我将为我提出的每个建议都有几个类别,所以我必须为每个建议重做它。

在python中有没有一种有效的方法来做到这一点?导出所有企业的评级矩阵,然后从中预测评级会更好吗?

谢谢。

【问题讨论】:

    标签: python mongodb recommendation-engine collaborative-filtering


    【解决方案1】:

    我想说,如果您正在寻找效率,您应该尝试将所有相关信息放入评论集合中的嵌入式文档中。

    这意味着您可以在 MongoDB 中进行聚合

    请参阅Model One-to-Many Relationships with Embedded Documents,了解使用嵌入文档而非规范化建模的讨论 和一般话题Data Models

    【讨论】:

      猜你喜欢
      • 2013-03-04
      • 2016-04-03
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      • 2020-07-25
      • 1970-01-01
      • 2016-06-14
      相关资源
      最近更新 更多