我从用户那里得到了关于他们与不同产品交互的隐含反馈。以下是数据集的结构:user_id,product_category,event_date,view_count,purchase_count
根据这些数据,我试图预测用户对产品类别的亲和力得分。 MLIB隐式表单期望输入数据集的格式为Rating(user:Int,product:Int,rating:Double)。但是如何包含view_count和purchase_count?
如果不能使用MLLIB,我可以使用任何其他方法。我的产品类别有限(仅限8个产品类别)。在这种情况下,我可以使用8个逻辑回归模型来预测亲和力吗?
由于
答案 0 :(得分:4)
您所描述的内容称为multinomial logistic regression,用于multiclass classification。这是典型logistic regression的概括,它只有2个结果(二元)。
看起来你正试图应用一个collaborative filtering模型,正如你所指出的那样在这种情况下不会起作用。
查看multinomial logistic regression的Spark ML / MLlib文档。
您可以将每个输入(view_count和purchase_count)视为单独的要素(输入数据),以使用现有的已知数据(包括结果)来训练模型。
当您对新数据进行评分/预测时,模型将返回每个可能结果的概率:8,在这种情况下......每个产品类别为1。然后选择概率最高的类别。
以下是一些相关的Spark文档链接:
Spark的Logistic回归编程指南
http://spark.apache.org/docs/latest/mllib-linear-methods.html#logistic-regression
当前spark.mllib Logistic回归API
新的spark.ml Logistic回归API
(注意:目前这只支持二进制,逻辑回归,但是当它可用时你应该迁移到它)
答案 1 :(得分:0)
您是在尝试预测亲和力得分还是继续推荐基于亲和力的推荐?例如,您可能具有购买与访问的比率,将其保持为评级(此处为亲和度评级)并执行推荐