如何仅训练阳性病例来预测结果?


21

为了简单起见,假设我正在研究垃圾邮件/非垃圾邮件的经典示例。

我有一组20000封电子邮件。在这些邮件中,我知道2000是垃圾邮件,但没有任何非垃圾邮件的例子。我想预测其余18000个垃圾邮件是否为垃圾邮件。理想情况下,我要寻找的结果是电子邮件为垃圾邮件的概率(或p值)。

在这种情况下,我可以使用哪种算法做出明智的预测?

目前,我正在考虑一种基于距离的方法,该方法可以告诉我电子邮件与已知垃圾邮件的相似程度。我有什么选择?

更笼统地说,我可以使用监督学习方法吗?或者我是否必须在训练中包含负面案例才能做到这一点?我是否仅限于无监督学习方法?那么半监督方法呢?


1
您将使用的任何学习算法都会预测所有邮件都是垃圾邮件。对于任何明智的学习,您都必须有两个类别的示例。
JohnRos

好的,那将排除经典的监督学习方法。但是,有没有一种算法可以返回某种相似性指标?例如:这封电子邮件与垃圾邮件非常相似,而另一封则与垃圾邮件相似。
enricoferrero 15/09/27

6
@JohnRos是不正确的,从积极的和无标签的数据中学习是半监督学习中的一个大话题,它与您所描述的完全不同。
马克·克莱森

5
@MarcClaesen:我不熟悉这项研究(非常酷)。我看到这种神奇之处在于,假设未标记的数据是垃圾邮件和非垃圾邮件的混合,这使得问题可以解决。
JohnRos

Answers:


19

这被称为从积极和未标记的数据中学习,或简称PU学习,是半监督学习的活跃领域。

简而言之,在学习过程中使用未标记的数据非常重要,因为它可以产生比所谓的单类别分类器明显改进的模型,所谓的“单类别”分类器仅针对已知的积极因素进行训练。未标记的数据可以通过几种方式合并,主要方法如下:

  • 以某种方式从未标记的数据中推断出一组可能的负数,然后训练一个监督模型以将已知的正数与这些推断的负数区分开。
  • 将未标记的集视为否定,并以某种方式解决已知存在的标记噪声。

我在这个领域很活跃,建议您阅读我的两篇论文以及其中的参考文献,以获取对该领域的概述:


1
优秀!非常感谢您的参考。RESVM和袋装SVM在PU学习设置中的表现相似。您可以推荐这两种算法的实现方式(最好在R中)吗?不幸的是,似乎都没有包含在插入符号中。
enricoferrero 15/09/27

1
@enricoferrero是的,除非存在假(已知)肯定值,否则它们的性能类似,在这种情况下RESVM的性能明显优于袋装SVM(我为此目的设计了RESVM,因为我处理的应用程序具有假肯定)。我不认为有R实现很容易获得,但是您可以通过包装SVM实现(例如kernlab或)来轻松实现这两个实现e1071。请注意,袋装SVM和RESVM都有许多必须优化的超参数,为此我建议使用Optunity库(具有R接口)。
Marc Claesen

1
@enricoferrero我确实可以在github.com/claesenm/resvm上获得RESVM的命令行实现,尽管该代码不是很好。该特定的存储库是用Python编写的,并用作EnsembleSVM软件包的驱动程序。
马克·克莱森

对于袋装SVM算法,似乎另一个不错的选择是在R中使用mlr包,并在SVM 学习周围使用袋装包装
enricoferrero 15/09/29

7

我假设在您的18000个案例中,垃圾邮件案例没有那么多。要使用监督学习方法,您的数据中必须有多个类别。由于您知道2000个案例是垃圾邮件,因此可以将其余18000个案例标记为“未知类别”,并训练任何监督学习模型来预测垃圾邮件或未知类别中的案例。然后检查样本外模型的准确性,以查看模型在区分这两个类别方面的表现如何。如果运行良好,则可以肯定我对“未知”类别中的垃圾邮件案例很少。如果运行不佳,则必须使用无人监督的学习者(如kmeans等)对数据进行聚类并识别出单独的同类组。然后确定哪些集群包含最多2000封垃圾邮件,哪些没有,分别标记为垃圾邮件和非垃圾邮件。接下来,您可以像我之前描述的那样,使用受监督的学习者进行建模。


2

OP所谈论的是一类分类任务,这是一项非常具有挑战性的任务。

在不同的研究领域有许多关于此任务的论文。我还编写了一个基于集成学习的有效内在作者身份验证方案。为了分类垃圾邮件/非垃圾邮件而不是作者,很容易进行调整。试试看,让我知道您是否需要更多详细信息...


跟随您的链接时出现404错误。
enricoferrero

有一个错字。抱歉,应该现在就可以工作;-)
未处理的异常
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.