我正在对推文进行情感分析。我收集了近 60 万条推文。我不想手动标记它们,而是编写了一堆复杂的规则来获得它们的标签。
在我为我的 ML 解决方案使用这些算法生成的标签之前,我想检查/分析这个标签有多好。是否可以运行任何统计/其他测试来了解我从代码中获得的标签质量。
我正在对推文进行情感分析。我收集了近 60 万条推文。我不想手动标记它们,而是编写了一堆复杂的规则来获得它们的标签。
在我为我的 ML 解决方案使用这些算法生成的标签之前,我想检查/分析这个标签有多好。是否可以运行任何统计/其他测试来了解我从代码中获得的标签质量。
是否可以运行任何统计/其他测试来了解我从代码中获得的标签质量。
是的。您可以将您的自动标签视为一个模型(它本质上是一个“专家”模型,具有附加功能)。收集具有已知准确标签的地面实况数据,并使用准确度、AUROC、F1 分数等指标来确定您的专家模型的工作情况。通常,您应该根据您要解决的问题选择一个对您有意义的指标。大多数统计库都允许您根据任意数据评估这些指标,因此应该可以找到 API 的相关部分并将您的合成标签提供给它,以与您收集的基本事实数据进行比较。
可是等等!这正是您训练和评估 ML 模型所需要做的。您可以希望的最好结果是,与从头开始训练 ML 版本相比,您需要更少的基础事实数据来评估您的专家。对于复杂的 ML 模型,例如深度神经网络,这很可能是正确的。
请注意,您可能会遇到这种方法的限制。假设您根据基本事实数据评估您的专家准确率为 85%。您将无法使用它来训练准确率超过 85% 的 ML 解决方案,因为 ML 将学习尽可能地复制专家的预测。
需要注意的一件事 - 如果您分析专家为什么会错误地给出一些值,然后对其进行调整以为这些标签提供正确答案,您将需要从测试数据中删除用于执行此操作的标签 - 理想情况下收集更多,或者从一些未使用的池中取出更多来替换它们。否则,您将使您的专家适合测试数据,并得到关于专家对未见数据的概括程度的错误报告。同样的推理意味着你不应该使用在开发专家模型时分析的推文和标签来测试它。