我正在处理一个非常具有挑战性的分类问题,我有三个问题:一个小数据集(大约800个样本),不平衡数据集(4个类别,其中1 - 600个样本,2/3/4 - 每个50个样本)并且丢失其中一项功能中的数据。
我一直在考虑的一些事情:
生成合成数据,例如使用SMOTE(合成少数过采样技术)。
将分类转换为少数和多数之间的二元分类。
组合不同的分类器,为负样本提供更多权重(如果我变成二元分类器)。
通过在成本函数中应用特定权重来进行成本敏感性学习(类似于之前的,但使用所有4个类)。
我打算使用Naive Bayes,SVM,Random Forests和Neural Networks以及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
我非常感激任何想法。
答案 0 :(得分:2)
我建议增加权重或复制属于较小类的数据。一种方法是将随机噪声添加到较小类的实例中,同时复制它。可以根据每个类中的特征的方差来估计噪声的方差。
答案 1 :(得分:1)
如果小数据集是最具代表性的示例(例如,目前正在进行甚至深度学习技术应用于小数据集的进展),则它不是问题。如何判断您的数据集是否具有代表性?它需要适当的采样技术,如分层采样,而不是随机采样。
要解决不平衡的数据集,有各种技术:欠采样(由于数据集较小而不适用于您的情况),过采样(可以工作,但存在模型过度拟合的风险)和成本敏感的学习(请参阅用于实现的Vowpal Wabbit工具包