如何训练只有正面和中性数据的分类器?

log*_*og0 25 nlp recommendation-engine machine-learning

我的问题:如何训练只有正面和中性数据的分类器?

我正在建立一个用于教育目的的个性化文章推荐系统.我使用的数据来自Instapaper.

数据集

我只有积极的数据: - 我阅读和"喜欢"的文章,无论读/未读状态如何

和中性数据(因为我已经表达了对它的兴趣,但我以后可能不会喜欢它): - 未读的文章 - 我读过并标记为已阅读的文章,但我并不"喜欢"它

我没有的数据是负面数据: - 我没有发送给Instapaper以便稍后阅读的文章(我不感兴趣,虽然我浏览了那篇文章/文章) - 我可能没有点过的文章,但是我可能已经或可能没有存档它.

我的问题

在这样的问题中,基本上缺少负面数据.我已经想到了以下解决方案,但还没有解决它们:

1)将一些负数据输入分类器优点:立即负数据来教授分类器缺点:随着我喜欢的文章数增加,对分类器的负面数据影响变暗

2)将"中性"数据转换为负面数据优点:现在我得到了我需要的所有正面和(新)负面数据缺点:尽管中性数据对我很感兴趣,但我还是想得到关于这样的建议.文章,但也许​​作为一个价值较低的类.

Rob*_*aus 17

间谍EM算法来解决正是这个问题.

S-EM是一个文本学习或分类系统,它从一组正面和未标记的例子中学习(没有反面例子).它基于"间谍"技术,朴素贝叶斯和EM算法.

基本的想法是将你的积极组合与一大堆随机文档结合起来,其中一些是你坚持的.您最初将所有随机文档视为否定类,并在该集合上学习一个朴素的贝叶斯分类器.现在,其中一些已抓取的文档实际上是正面的,您可以保守地重新标记任何得分高于最低得分的文档.然后你迭代这个过程,直到它稳定.


小智 9

如果您有不同用户的大量积极反馈,那么您将拥有一个相当典型的协作过滤方案.

以下是一些CF解决方案:

存在那些算法的公开可用的实现,例如

  • MyMediaLite(免责声明:主要作者),http://mymedialite.net
  • Apache Mahout(免责声明:粉丝和补丁撰稿人),http://mahout.apache.org
  • GraphLab/GraphChi,http://graphlab.org/

顺便说一下,如果你使用分类器来解决这些问题,请看一下有关积极学习的文献,例如http://users.csc.tntech.edu/~weberle/Fall2008/CSC6910/Papers/posonly.pdf


Thi*_*hiS 0

我认为你想做的更多的是推荐系统而不是分类器。

最先进的技术是使用每篇文章的内容并创建一个词袋。从这里您可以计算与不同文章的距离。具有密切相似性的文章(使用聚类或相似性,如 Pearson、Tanimoto)将是您更可能想要阅读的文章。这是快速获得某物的最简单方法。

当然还有更复杂、更准确的方法。