看不见的类 - “其他”类或基于现有类的分类

数据挖掘 分类
2022-02-26 21:13:26

假设我有一个分类器,它检测代码脚本是用 Python 还是 C++ 还是 Java 编写的。

因此,我的分类器有 3 个输出,它们给出了某个代码脚本是上述 3 种编程语言之一的概率。

然而,不幸的是,测试数据可能包含一些用其他编程语言(如 Javascript、Ruby、PHP 等)编写的代码脚本。

如果我让我的分类器保持原样,那么它将这些代码脚本分类为 Python、C++ 或 Java,这肯定是非常错误和误导的。

添加另一个名为“Other”的类是否有意义,该类将包含各种其他编程语言(Javascript、Ruby、PHP 等)的代码脚本,甚至是不相关的文本来处理它?

有没有更好的主意?

1个回答

您绝对可以添加更多样本并使用分类器将其标记为其他样本。然而,实际上这可能不是一个选择。为此,您可以将置信度值与分类器的输出一起使用来预测“其他”类。您可以引入置信度阈值来支持这一点,即如果您的分类器对其预测的置信度不大于 0.8(例如),那么您将其标记为“其他”类。

阈值的最佳值是多少,您可以通过使用不同阈值运行大量实验来确定,并绘制正确性图,即分类错误率图。