Machine learning 如何处理机器学习分类问题中的小数据集和不平衡数据集

Machine learning 如何处理机器学习分类问题中的小数据集和不平衡数据集,machine-learning,classification,data-analysis,Machine Learning,Classification,Data Analysis,我正在处理一个非常具有挑战性的分类问题,其中我有三个问题:一个小数据集(大约800个样本)、不平衡数据集(4个类,其中1-600个样本,每个类2/3/4-50个样本)和其中一个特征中的缺失数据 我一直在考虑的一些事情: 生成合成数据,例如使用SMOTE(合成少数过采样技术) 把分类变成少数和多数之间的二元分类 组合不同的分类器,在负样本上赋予更多权重(以防我变成二元分类器) 通过在成本函数中应用特定权重进行成本敏感学习(类似于前一个,但使用所有4个类) 我打算使用朴素贝叶斯、支持向量机、随机

我正在处理一个非常具有挑战性的分类问题,其中我有三个问题:一个小数据集(大约800个样本)、不平衡数据集(4个类,其中1-600个样本,每个类2/3/4-50个样本)和其中一个特征中的缺失数据

我一直在考虑的一些事情:

  • 生成合成数据,例如使用SMOTE(合成少数过采样技术)

  • 把分类变成少数和多数之间的二元分类

  • 组合不同的分类器,在负样本上赋予更多权重(以防我变成二元分类器)

  • 通过在成本函数中应用特定权重进行成本敏感学习(类似于前一个,但使用所有4个类)

我打算使用朴素贝叶斯、支持向量机、随机森林和神经网络以及2倍交叉验证作为分类器。稍后我可能会移动到5到10倍

特征的一些特征:

  • 5连续,其中3个是基于图形位置(最小值、最大值和分布)的不同属性,其中一些具有非常低的方差和重复数据

  • 2个二进制特征,其中一个缺失数据

数据片段:

Y   X1  X2_min  X2_max  X2_distribution X3  X4  X5
3   6   1       11      3.3058739       0   1   1
3   662 1       11      1.7779095       1   15  1
1   6   1       7       3.060274        0   1   1
3   8   1       6       2.9697127       0   1   1
3   82  1       14      3.0341356       0   1   1
2   39  1       7       4.2189913       0   1   1
4   1   3       14      4.6185904           1   1

如果您能再三考虑,我将不胜感激。

我建议您要么增加体重,要么复制属于小班学生的数据。一种方法是向较小类的实例添加随机噪声,同时复制它。噪声的方差可以通过每个类别内特征的方差来估计

如果小数据集是最具代表性的例子(例如,目前正在取得进展,甚至深度学习技术也应用于小数据集),那么小数据集就不是问题。如何判断您的数据集是否具有代表性?它需要适当的抽样技术,如分层抽样,而不是随机抽样

要处理不平衡的数据集,有多种技术:欠采样(由于数据集较小,不适用于您的情况)、过采样(可以工作,但存在模型过度拟合的风险)和成本敏感学习(有关实现,请参阅Vowpal Wabbit toolkit)