机器学习来预测用户参与度

时间:2019-09-10 18:21:27

标签: python machine-learning

我正在研究一个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,内容,情感,频道,time_done 我的问题是

1)推荐系统是否是解决此问题的好方法?

2)如果是,那么哪个余弦相似度更好或使用randomforest分类器进行训练?

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

我是python的新手。请提前提供帮助。

1 个答案:

答案 0 :(得分:1)

是的,这是经典的推荐系统问题。解决此问题的方法很多,我建议从article开始。通常,推荐系统中有两种方法-基于模型和基于内存。以我的经验,基于模型的方法的性能要比基于内存的方法好得多。关于不同的模型和解决方案,有一个不错的摘要here

我既不建议余弦相似度也不建议随机森林。余弦相似度给出了非常高的一周相似度得分,并且随机森林未针对每个用户进行个性化设置。但是,如果您仅知道这两个工具,请使用随机森林。通常,我建议使用矩阵分解,这样往往会提供更高的准确性。

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

请注意,推荐系统是一个巨大的研究领域-因此您无法从一个帖子中获得所有答案。您将需要进行一些研究,并了解应如何汇总数据,用户配置文件和项目配置文件的行为方式以及更多其他内容。如果您是python的新手,我还建议您回顾一下R脚本语言,它具有许多用于推荐系统的工具,对于初学者而言,它比Python更直接。 (我使用R做了推荐系统博士学位论文)