【问题标题】:Machine Learning to predict user engagements机器学习预测用户参与度
【发布时间】:2019-09-10 18:21:27
【问题描述】:

我正在开发一个 php 项目,我需要根据以前的活动历史来预测用户喜欢或报告帖子。一旦我预测新帖子用户是否会喜欢或报告,我可以将其自动化,而无需实际用户手动完成。为了实现该功能,我决定使用 python 和 php 作为 API 服务。

这是我的表结构

post table

id  post_title  content   sentiment  channel 
 1   post1      content1    .92      facebook
 2   post2      content2    .60      facebook
 3   post3      content3    .40      twitter
 4   post4      content4    .98      instagram

post_actions

id  post_id user_id liked reported time_done
 1   1       1       1      0       4:00pm
 2   2       1       0      1       2:00pm
 3   1       2       0      1       3:00pm
 4   3       1       1      0       4:00pm

在这里,我想预测一下,无论何时有新帖子到达,他都喜欢或不喜欢 user_id 1。同样的情况也适用于报告。我对推荐系统进行了很多研究。如果我没记错的话,我还进一步理解这是一个基于内容的推荐系统。

我这里的参考如下

1)https://towardsdatascience.com/wine-ratings-prediction-using-machine-learning-ce259832b321

2)https://towardsdatascience.com/how-to-build-from-scratch-a-content-based-movie-recommender-with-natural-language-processing-25ad400eb243

3)https://medium.com/@adamlouly/nlp-based-recommender-system-without-user-preferences-7077f4474107

我对 ML 的特征是 post_title、content、sentiment、channel、time_done 我的问题是

1)推荐系统是解决这个问题的好方法吗?

2)如果是,那么余弦相似度或使用随机森林分类器训练哪个更好?

3)我可以将时间用作一项功能吗?应该可以吗?

我是python的新手。请帮助,在此先感谢。

【问题讨论】:

    标签: python machine-learning


    【解决方案1】:

    是的,这是一个经典的推荐系统问题。有很多方法可以解决这个问题,我建议从article 开始。一般来说,推荐系统中有两种方法——基于模型的和基于内存的。根据我的经验,基于模型的方法比基于内存的方法执行得更好。有一个很好的总结here 关于不同的模型和解决方案。

    我既不推荐余弦相似度也不推荐随机森林。余弦相似度给出了非常周的相似度分数,并且随机森林不是针对每个用户进行个性化的。但是,如果您只知道这两个工具,请使用随机森林。一般来说,我会推荐使用矩阵分解,这往往会提供更好的准确性。

    时间特征是一个非常重要的特征。您应该创建几个封装时间因素影响的 KPI。例如帖子的小时和工作日,用户登录和帖子创建之间的时间等等。

    请注意,推荐系统是一个庞大的研究领域 - 因此您无法从一篇文章中获得所有答案。您需要进行一些研究并了解应如何汇总数据、用户配置文件和项目配置文件的行为方式等等。如果您是 python 新手,我还建议您查看 R 脚本语言,它有许多用于推荐系统的工具,并且比 Python 更适合初学者。 (我使用 R 完成了我的推荐系统博士论文)

    【讨论】:

    • 感谢您的帮助。我想知道如果一个名为 post5 的新帖子只能由用户 1 访问,用户 2 不能访问,所以我不想向用户 2 推荐这些帖子。我正在考虑使用烧瓶作为 api。听起来我需要 dynamci pkl 文件。更多信息可以在这个链接中找到。请帮助stackoverflow.com/questions/58156966/…
    猜你喜欢
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 2016-09-08
    • 2011-10-04
    • 2017-12-25
    • 2021-04-06
    • 1970-01-01
    • 2021-05-26
    相关资源
    最近更新 更多