【问题标题】:How to use Graphlab recommend() for providing recommendations to new user?如何使用 Graphlab 推荐()为新用户提供推荐?
【发布时间】:2016-04-20 02:11:34
【问题描述】:

在 Graphlab 中, 我正在尝试使用推荐()方法,以查看它如何为从给定数据集准备的训练模型中不存在的新用户(user_id)提供推荐。由于目标是通过所使用的推荐模型确定相似的用户,所以我计划在推荐()中传递 new_user_data,但与现有用户的项目评分完全相同,以检查它是否应该返回相同的评分。 这是我正在做的事情:

(数据是包含 UserIds、ItemIds 和 Rating 列的数据集) (比如说 104 是一个新的 UserId,它不在数据集中)

result=graphlab.factorization_recommender.create(data,user_id='UserId',     
item_id='ItemId',target='Rating')   
new_user_info=graphlab.SFrame({'UserId':104,'ItemId':['x'],'Rating':9})   
r=result.recommend(users=104,new_user_data=new_user_info)

我收到一个错误:

raise exc_type(exc_value)

TypeError: object of type 'int' has no len()

任何人都可以帮助了解如何为新用户使用推荐()方法吗?

【问题讨论】:

    标签: python graphlab


    【解决方案1】:

    哪几行给了你例外?我认为您在创建 SFrame 和使用 .recommend() 方法时遇到问题。

    new_user_info=graphlab.SFrame({'UserId':104,'ItemId':['x'],'Rating':9})   
    # should be
    new_user_info=graphlab.SFrame({'UserId':[104],'ItemId':['x'],'Rating':[9]})   
    # construct SFrames from a dictionary where the values are lists
    

    r = result.recommend(users=104,new_user_data=new_user_info)
    # should be:
    r = result.recommend(users=[104],new_user_data=new_user_info)
    # users is a list, not an integer
    

    【讨论】:

      猜你喜欢
      • 2012-10-03
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      • 1970-01-01
      • 2019-04-25
      • 1970-01-01
      相关资源
      最近更新 更多