本质上我有一个数据集,它有一个特征向量,以及指示它是垃圾邮件还是非垃圾邮件的标签。
为了获得该数据的标签,使用了两种不同类型的专家,每种专家都使用不同的方法来评估该项目,然后使用的专家类型也成为向量中的一个特征。
使用随机森林算法对数据的单独部分进行训练和测试已经实现了高精度。
但是,现在很明显,描述制作标签的专家的功能将无法在实时环境中使用。所以我尝试了多种方法来反射(reflect)这一点:
- 从集合中删除该特征并重新训练和测试
- 根据特征将数据分成 2 个不同的集合,然后训练和测试 2 个单独的分类器
- 对于测试数据,将相关特征全部设置为相同的值
对于所有 3 种方法,分类器都从高度准确下降到几乎无用。
因此,我正在寻找任何建议或直觉来解释为什么会发生这种情况以及如何解决它,以便重新获得我之前看到的一些准确性?
需要明确的是,我没有机器学习或统计方面的背景,只是使用第三方 C# 代码库作为黑匣子来实现这些结果。
最佳答案
听起来您已经完全过度适应“谁标记了什么”功能(以及此功能与其他功能的组合)。您可以通过检查随机森林的 feature importances 来确定答案。并检查注释器功能是否排名靠前。另一种找出答案的方法是让注释者检查彼此的注释并计算一致性分数,例如 Cohen's kappa 。较低的值(例如小于 0.5)表示注释者之间存在分歧,这使得机器学习非常困难。
由于该功能在测试时不可用,因此没有简单的方法可以恢复性能。
关于machine-learning - 如何最好地处理与哪种类型的专家标记了在分类时不可用的数据相关的特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25310302/