如何对具有许多不平衡类的数据集执行文本分类
数据挖掘
Python
nlp
2021-09-22 02:50:02
2个回答
- 对于 200k 个实例,具有少于 10 个实例的类代表不到 0.005% 的数据。模型不太可能学会区分所有这些类,尤其是最小的类。
- 确实不建议使用文本进行数据增强。文本非常多样化,因此无法从几个实例中生成具有良好代表性的样本。这只会导致重复几乎相同的实例(毫无意义)或生成并不真正代表类的虚构数据(有偏见的数据集)。
实际上,用非常小的类不可能做任何事情。我的建议是首先训练一个只有前 5 或 10 个类的模型,然后如果它运行得相当好,然后从那里改进。请注意,短文本通常难以分类,因为它们可能包含的信息太少。作为一个简单的经验法则,如果查看实例的人类专家无法找到它属于哪个类,那么机器学习模型很可能也不能。
在我当前的公司中构建主题分类器时,我遇到了所有可能的类之间不平衡的类似情况,在本例中是呼叫中心对话数据集。
正如@Erwan 还建议的那样,我会尝试:
- 首先关注最常见课程的模型(作为类比,在我的情况下,它首先是关于仅对主要主题进行建模);如果您发现第一种方法足够可靠或高于基线模型,您可以尝试:
- 继续使用具有更多类的模型,但仍将代表性较低的模型分组到称为“其他”的标签中
- 作为后续步骤,在我的情况下,有一些通用主题(最常见的主题,在您的情况下是最常见的标签),并且每个主题都建立了一个特定的模型来检测相关的子主题(如果您可以将标签分类为通用和二级标签...)。
关于文本的长度,我建议在建模阶段考虑 François Chollet 的这个实验经验法则:
其它你可能感兴趣的问题