【发布时间】:2016-03-26 18:14:00
【问题描述】:
我有一个数据集,其中包含许多 0 类实例和一些极少数 1 类实例,这是一个问题,因为 0 类实例将支配 1 类实例,并且类的精度非常低1. 我正在使用 weka java API,在 API 中我发现了一个为实例赋予权重的选项,因此我决定对我的测试集中具有类 1 的实例赋予权重,如下所示:
breader = new BufferedReader(new FileReader("weka/train.txt"));
Instances train = new Instances(breader);
train.setClassIndex(train.numAttributes() - 1);
Instances testset= new Instances(new BufferedReader(new FileReader("weka/test.txt")));
unlabeled.setClassIndex(testset.numAttributes() - 1);
for (int i = 0; i < testset.numInstances(); i++) {
if(testset.instance(i).classValue()==1){
testset.instance(i).setWeight(30);
}
}
这样做之后,精度提高了很多。现在我想知道我正在做的事情是否可以接受,如果可以,如何推理?
【问题讨论】:
标签: machine-learning classification weka