0

我有大约 15k 个文本实例,它们被手工分类到 120 个类别之一。文本片段是来自客户的电子邮件。类的频率从 1 到 2000 不等。我想在这些数据上训练一个分类器,以便可以自动分类后续的电子邮件。

我已经尝试过朴素贝叶斯和 SVM,但报告正确分类实例的百分比分别为 51% 和 57%。我使用了词干分析器,删除了停用词并将文本更改为小写。

我确信这样一个具有大量类别和分布不均匀的文本分类任务,必须以不同的方式处理,但我找不到这种情况的任何参考......有什么建议吗?

提前致谢!

4

1 回答 1

0

我假设类不重叠(也就是说,每条消息只有一个类)。

在不平衡类的情况下,一个有用的方法是使用不对称的错误分类成本,以强制分类器专注于较少代表的类,因为它的成本被分配比其他类大得多的数字。

在二元分类器的情况下,这在 WEKA 中相对容易(参见例如类不平衡分布和 WEKA 成本敏感学习),但在 120 个类的情况下设置起来要困难得多。因此,一种方法是将这个问题转化为 120 个二元问题(一个与其余问题),并为每个问题设置适当的成本矩阵。

根据我的经验,一个更可行的替代方案,并且考虑到大量的类,是将不常见的类折叠成一个更大的other。这对于实际设置似乎更有用;有一个“其他”文件夹供人类专家检查,而大多数时候分类器正确地将电子邮件分配给其余的——填充良好的——类。

最后一点,根据类的分布,大约 50-60% 的准确率毕竟可能还不错。例如,99%-1% 的多数分类器(将每个实例分配给人口最多的类)的准确率为 99%;但是它绝对没用,因为它错过了有趣的例子。在现实生活中,这发生在电子邮件垃圾邮件过滤、欺诈发现和许多其他领域。

于 2014-06-04T11:43:18.780 回答