大规模不平衡数据的机器学习模型建议

我有一个用于分类问题的数据库。总共有50个类别。

 Class1: 10,000 个样本  Class2: 10 个样本 Class3: 5 个样本  Class4: 35 个样本 . . . 以此类推。

我尝试使用SVM(线性和高斯核)来训练我的分类器。在测试数据上的准确率分别为65%和72%,非常差。现在我在考虑使用神经网络。您对处理大规模不平衡数据的机器学习模型和算法有什么建议吗?这对我来说将非常有帮助。


回答:

您应该提供更多关于数据集特征和类别分布的信息,这将有助于其他人为您提供建议。无论如何,我认为神经网络在这里不合适,因为这个数据集对于神经网络来说太小了。

假设50%或更多的样本属于类别1,那么我首先会寻找一个能够区分类别1和非类别1样本的分类器(二元分类)。这个分类器应该优于一个简单的分类器(基准),后者随机选择分类,其先验概率对应于训练集的类别分布。例如,假设有1,000个样本,其中700个属于类别1,那么基准分类器会以700/1,000=0.7的概率将新样本分类为类别1(就像不公平的抛硬币)。

一旦找到一个准确率较好的分类器,接下来可以将非类别1的样本分类为其他49个类别之一,假设这些类别更加平衡,那么我会从随机森林(RF)、朴素贝叶斯(NB)和K近邻(KNN)开始尝试。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注