我的问题:如何训练只有正面和中性数据的分类器?
我正在建立一个用于教育目的的个性化文章推荐系统。我使用的数据来自Instapaper。
数据集
我只有正数据: - 无论读/未读状态如何,我已经阅读过的文章和#34;喜欢"
中性数据(因为我已表示对它感兴趣,但我以后可能不喜欢它): - 未读的文章 - 我读过并标记为已阅读的文章,但我没有"喜欢"它
我没有的数据是负面数据: - 我没有发送给Instapaper以便稍后阅读的文章(我不感兴趣,虽然我浏览了那篇文章/文章) - 我可能没有点击过的文章,但我可能已经或可能没有将其归档。
我的问题
在这样的问题中,基本上缺少负面数据。我已经想到了以下解决方案,但还没有解决它们:
1)将一些负数据输入分类器 优点:立即负面数据,以教授分类器 缺点:随着我喜欢的文章数量的增加,对分类器的负面数据影响变暗
2)转动"中立"数据转化为负数据 优点:现在我拥有了我需要的所有正面和(新)负面数据 缺点:尽管中性数据对我来说很感兴趣,但我仍然希望得到有关此类文章的建议,但也许是一个价值较低的类别。
答案 0 :(得分:17)
Spy EM algorithm解决了这个问题。
S-EM是一个文本学习或分类系统,它从一组正面和未标记的例子中学习(没有反面例子)。它基于“间谍”技术,朴素贝叶斯和EM算法。
基本的想法是将你的积极集合与一大堆随机文档相结合,其中一些是你提出来的。您最初将所有随机文档视为否定类,并在该集合上学习一个朴素的贝叶斯分类器。现在,其中一些已抓取的文档实际上是正面的,您可以保守地重新标记任何得分高于最低得分的文档。然后你迭代这个过程,直到它稳定。
答案 1 :(得分:9)
如果您有不同用户的大量积极反馈,那么您就有了一个相当典型的协作过滤方案。
以下是一些CF解决方案:
存在这些算法的公开可用实现,例如
顺便说一下,如果你使用分类器来解决这些问题,请看一下有关积极学习的文献,例如: http://users.csc.tntech.edu/~weberle/Fall2008/CSC6910/Papers/posonly.pdf
答案 2 :(得分:1)
这显然是一个老帖子,但我有一个类似的问题,希望你可以节省一些时间,我发现自己使用以下技术:
答案 3 :(得分:1)
答案 4 :(得分:0)
你想要做的更多的是recommender system而不是我认为的分类器。
现有技术是使用每篇文章的内容并创建bag of words。从这里您可以计算不同文章的距离。具有密切相似性的文章(使用像Pearson,Tanimoto这样的聚类或相似性)将是您更可能想要阅读的文章。这是快速获取内容的最简单方法。
当然有更复杂和准确的方法。
答案 5 :(得分:0)
制作两个二元分类器。
1 -> "liked" or not
2 -> "neutral" or not
您还可以选择将它们链接在一起,以避免出现“喜欢”和“中立”的情况。这将允许您对内容进行分类。
正如@ThierryS提出的另一个答案所示,另一种选择是建立一个推荐器,允许你推荐其他类似用户已经识别为“喜欢”或“中立”的内容。社会方面的优势。
答案 6 :(得分:0)
如果您想远离机器学习示例:TF-IDF可以为您提供与您喜欢(或查看过)的文章相似的文章的加权肯定推荐,并且对于此用例非常常见。
更复杂的非学习方法包括用于确定文档相似性的LSA,但实现起来并非易事,并且LSA“空间”的构建在没有大量处理能力的情况下不会超过数百或数千个文档。
这两个都在计算语言学领域。
祝你好运!