为一组用户训练ML分类器

时间:2014-11-18 19:01:53

标签: machine-learning nlp

我有一个机器学习项目,它给出了一组用户对一系列在线文章的反应(通过喜欢/不喜欢的方式显示),我需要为新到的文章做出决定。

这项任务决定了每个人的反应能够预测新来的文章是否应被视为向整个社区推荐。

我一直想知道我应该如何结合每个用户的反馈来决定这是否是一篇值得推荐的有趣文章。

请记住,在用户内部'那些喜欢和不喜欢同一篇文章的用户是否有办法将所有这些信息纳入并得出关于该文章的结论?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

有很多不同的方法来确定什么是“有趣的”。我认为reddit在考虑不同选项时有一个非常好的模型。它们有不同的类别,如“热门”或“有争议”等等。

所以有几个选项取决于你/你教授想要的东西:

  • 获取喜欢的净数量(例如= +1,不喜欢= -1)
  • 只选择喜欢的次数
  • 取得评分总数(完全阅读)
  • 选择喜欢与不喜欢比例最高的人
  • 这些事情的某种组合

所以你可以尝试很多不同的东西。也许尝试一下,看看哪个产生的结果最像你想要的?

就如何预测文章是否与您已有信息的文章进行比较而言,这是一个更广泛的问题,但我认为这不是您所要求的,而且看起来这就是机器学习项目的意义所在。

答案 1 :(得分:0)

我不确定以这种方式推荐文章是否合适,但如果这是您的要求,那么让我建议您采取一种方法。

<强>方法
首先,每个文章根据喜欢和喜欢的数量给出一个标签(喜欢/不喜欢)。不喜欢。现在你有一些喜欢/不喜欢标签的文章。根据这些数据,您需要确定新文章的标签是否喜欢/不喜欢。这属于简单的线性分类问题,可以通过使用任何开源ml框架来解决。

让我们说,我们有 - 组中的n个用户数量 - m篇文章

样本数据

user1 article1 like
user1 article2不喜欢
user2 article3不喜欢
....
用户文章喜欢

实施

for each article    
    count the number of likes    
    count the nubmer of dislikes    
    if no. of likes > no. of dislikes, 
       lable = like    
    else  
       lable = dislike       

将此输入(带有标签的文章)提供给朴素贝叶斯(或任何)分类器以构建模型 使用此模型对新文章进行分类。

输出:喜欢/不喜欢,如果你想推荐这篇文章。

已知问题
1.半数用户喜欢什么?另一半不喜欢这篇文章,你会认为它是喜欢还是不喜欢? 2. 11个用户不喜欢什么? 10个用户喜欢,是否可以将此视为不喜欢?

这些问题应由您自己或您的客户作为要求澄清的一部分来回答。