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