我正在开发一个用于关键短语提取的 ML 监督学习项目。评估数据集(不同于训练验证数据集)包含大约 200 个标记为关键或非关键的短语。
问题是我想将通过不同分类器的算法获得的结果(在精度、召回率和 f1 方面)与现有的无监督方法进行比较。这些方法基于排名并提取前 k 个关键短语。
使用我提到的数据集,计算这些无监督排名方法的精度和召回率的正确方法是什么?
我正在开发一个用于关键短语提取的 ML 监督学习项目。评估数据集(不同于训练验证数据集)包含大约 200 个标记为关键或非关键的短语。
问题是我想将通过不同分类器的算法获得的结果(在精度、召回率和 f1 方面)与现有的无监督方法进行比较。这些方法基于排名并提取前 k 个关键短语。
使用我提到的数据集,计算这些无监督排名方法的精度和召回率的正确方法是什么?
你首先需要确定你的“标签”是什么,这个标签将适用于你的监督和非监督模型。显然,在有监督的世界中,知道你的标签可以很容易地训练模型和评估它,所以我不会深入讨论,因为你似乎掌握得很好。
在无监督的世界中,您必须认真考虑无监督输出到您决定用于评估的标签的映射。很多这将归结为你如何构建这个无监督的问题。就像,如果您要使用无监督聚类,那么也许您运行模型,查看聚类的样子,看看是否有办法将这些聚类映射到您正在评估的标签。
听起来您正在使用无监督排名并在无监督排名之后提取热门关键词。在这种情况下,您可能希望将可能的最重要的关键短语映射到您要评估的标签。然后在排名和关键短语提取之后,您可以根据每个预测的关键短语得到一个映射的“预测标签”。当然,您可能会有一堆杂乱无章的“预测标签”,因为每个测试预测不太可能输出与 1 个标签完全匹配的 N 键短语,这意味着您必须想出一种方法来四舍五入这些地图(也许你采用模式,也许你取平均值,这一切都取决于你最看重的东西)到一个奇异的预测标签。从那里开始,进行召回和精度以及 f1 是直截了当的。
不过,我要说的是,只有在召回率、精度和 f1 是评估模型在其问题空间中有用性的最佳方法时,尝试将无监督模型转变为像监督模型一样的评估才有用。这与评估其有效性有很大不同。
这个问题是:这个模型的输出是否最适合问题的用例?当我向最终用户实现这个输出时,他们会比另一个模型更喜欢这个模型吗?我鼓励您除了使用经典评估分数来衡量模型有效性之外,还要找到一种方法来衡量或理解模型在您拥有的应用程序中的有用性。