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

我有一个用于分类问题的数据库。总共有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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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