多类分类中的类不平衡问题

Posted

技术标签:

【中文标题】多类分类中的类不平衡问题【英文标题】:class imbalance issue in multi-class classification 【发布时间】:2013-06-07 21:12:58 【问题描述】:

我需要一个多类分类器代码,它可以在以下类不平衡问题中工作:

1 级--> 80% 2 级--> 7.5% 3 级--> 6% 4 级--> 4% 5 级--> 2.5%

总共只有 130 个实例,每个实例大约有 5000 个特征。

我找到了一个多类 SVM 代码,但我认为它没有考虑到类不平衡问题。此外,我还需要进行某种 k 折交叉验证。

python 或 matlab 代码会很有帮助。

【问题讨论】:

【参考方案1】:

我相信大多数想在 MATLAB 中使用 SVM 的人都使用libSVM,它有一个 MATLAB 接口。它处理多类问题。 5000 个特征和 130 个实例应该没问题。

我不确定你是想使用类权重/先验还是使用成本敏感型学习来处理你的类不平衡,但你可以通过一些额外的工作来实现,请参阅 here 和 here 了解一些想法。

可以在 MATLAB 中使用 Statistics Toolbox 中的 cvpartition 实现 k 折交叉验证(即使您没有 Statistics Tolbox,也可以非常简单地编写代码)。

【讨论】:

以上是关于多类分类中的类不平衡问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 libsvm 将多类划分为二进制类(不是分类)

keras中二元分类的类不平衡

如何处理 sklearn 随机森林中的类不平衡。我应该使用样本权重还是类权重参数

多类文本分类不平衡,处理类“其他”

多类分类问题中的不平衡 - 四个目标级别

大型多类 NLP 分类的不平衡数据和样本量