如何让Weka将较小的类分类为2:1类不平衡?

时间:2015-07-01 18:44:16

标签: machine-learning classification weka

如何让Weka对较小的分类进行分类?我有一个数据集,其中正分类是数据集的35%,负分类是数据集的65%。我希望Weka预测正分类,但在某些情况下,结果模型预测所有实例都是负分类。无论如何,它正在对负(较大)类进行分类。如何强制它对正(较小)分类进行分类?

3 个答案:

答案 0 :(得分:0)

一个简单的解决方案是将您的训练集调整为更加平衡(50%为正,50%为负),以鼓励对两种情况进行分类。我猜你的问题空间中你的案例更多是负面的,因此你需要找到一些方法来确保负面案例仍能很好地代表问题。

由于正面与负面的比例为1:2,您还可以尝试复制训练集中的正面情况,使其成为2:2,看看情况如何。

答案 1 :(得分:0)

使用分层抽样(例如50%/ 50%样本的火车)或班级重量/班级先验。如果你告诉我们哪个特定的分类器,它会有很大帮助吗Weka似乎have at least 50

第一类错误的处罚是否是第二类错误的处罚? 这是接收器操作曲线(ROC)的特例。 如果处罚不相等,请尝试使用截止值和AUC。

您可能还想阅读姊妹网站CrossValidated以获取统计信息。

答案 2 :(得分:0)

使用CostSensitiveClassifier,它在“meta”分类器下可用 enter image description here

您需要将“分类器”更改为J48和(!)更改成本矩阵 就像[(0,1),(2,0)]。这将告诉J48,正面实例的错误分类比负面实例的错误分类要贵两倍。当然,您可以根据业务价值调整成本矩阵。