我有2个数据集,一个具有要检测的阳性实例,另一个具有未标记的实例。我可以使用哪些方法?
作为示例,假设我们想了解基于一些结构化电子邮件特征的检测垃圾邮件。我们有10000个垃圾邮件的数据集,还有一个100000电子邮件的数据集,而我们不知道它们是否为垃圾邮件。
我们如何解决这个问题(不手动标记任何未标记的数据)?
如果我们有关于垃圾邮件在未标记数据中所占比例的其他信息,该怎么办(即,如果我们估计100000未标记电子邮件中有20-40%是垃圾邮件,该怎么办)?
我有2个数据集,一个具有要检测的阳性实例,另一个具有未标记的实例。我可以使用哪些方法?
作为示例,假设我们想了解基于一些结构化电子邮件特征的检测垃圾邮件。我们有10000个垃圾邮件的数据集,还有一个100000电子邮件的数据集,而我们不知道它们是否为垃圾邮件。
我们如何解决这个问题(不手动标记任何未标记的数据)?
如果我们有关于垃圾邮件在未标记数据中所占比例的其他信息,该怎么办(即,如果我们估计100000未标记电子邮件中有20-40%是垃圾邮件,该怎么办)?
Answers:
我的建议是尝试在未标记的数据上建立某种程度上近似于标记数据集的聚类。基本原理如下:
希望这是有道理的,如果您专门寻找集群算法,那么我个人喜欢的一些示例可能是FLAME和tsne。或者,查看python中壮观的gensim库将使您走很长的路要走。
希望有帮助并且有意义,如果您有任何疑问,请发表评论。
训练2个生成模型,每个数据集一个模型(仅垃圾邮件,垃圾邮件和火腿),这将使您有可能从训练数据的相同概率分布中提取数据点。根据哪种模型使您从用于培训文档的培训数据中获得文档的可能性最高,将电子邮件分配为垃圾邮件或垃圾邮件。示例性生成模型是RBM的自动编码器(在这种情况下,哪种模型的重建误差最低)。可能还有一些贝叶斯生成模型,这些模型将根据一些训练数据将概率分配给数据点。
最好的选择是花一些时间来整理仅包含火腿的第二个数据集。这样可以提高分类精度。假设垃圾邮件占火腿邮件的比例较低,这应该不太困难。如果您没有时间或资源(或者实习生\毕业生或其他廉价劳动力),甚至可以使用Mechanical Turk。