我正在 Weka 中进行分类任务,并遇到了一个问题,即我要预测的类有一个非常频繁的值(大约 85%)。这导致许多学习算法只是为新数据集预测此类的这个频繁值。
我该如何处理这个问题?这是否只是意味着我没有找到能够很好地预测更好的东西的功能?或者我可以做些什么来解决这个问题?
我想这是一个很常见的问题,但我无法在这里找到解决方案。
我正在 Weka 中进行分类任务,并遇到了一个问题,即我要预测的类有一个非常频繁的值(大约 85%)。这导致许多学习算法只是为新数据集预测此类的这个频繁值。
我该如何处理这个问题?这是否只是意味着我没有找到能够很好地预测更好的东西的功能?或者我可以做些什么来解决这个问题?
我想这是一个很常见的问题,但我无法在这里找到解决方案。
您需要“SMOTE”您的数据。首先弄清楚您还需要多少个少数案例。就我而言,我想获得大约 50/50 的比率,所以我需要过度采样 1300%。如果您使用 GUI,本教程将有所帮助:http ://www.youtube.com/watch?v=w14ha2Fmg6U 如果您使用 Weka 从命令行执行此操作,以下命令将帮助您:
#Weka 3.7.7
java weka.Run -no-scan weka.filters.supervised.instance.SMOTE \
-c last -K 25 -P 1300.0 -S 1 -i input.arff -o output.arff
-K 选项是在 smoting 数据时要考虑的邻居数。默认值为 5,但 25 最适合我的数据集。