如何在IBK预测中使用加权属性?

时间:2013-12-05 10:44:00

标签: weka knn

我正在使用IBK预测数值列。我有两个数据集:列车数据集和测试数据集。由于使用以下代码的预测值不满足我,我想对每列进行加权以使预测值更容易接受。

搜索之后,我发现Weka中唯一考虑属性权重的方案是天真的贝叶斯。我想知道是否可以使用朴素贝叶斯来衡量属性,然后在IBK中使用朴素贝叶斯(加权属性)的输出?

try{
        IBk knn = new IBk();
        String[] options = new String[2];
        options[0]= "-F";
        options[1]= "-E";
        knn.setOptions(options);
        knn.setKNN(100);
        knn.setCrossValidate(false);

        trainData.setClassIndex(trainData.numAttributes()-2);

        testData.setClassIndex(testData.numAttributes()-2);

        knn.buildClassifier(trainData);
        Evaluation eval = new Evaluation(trainData);
        eval.evaluateModel(knn, testData);
        System.out.println(eval.toSummaryString("\nResults\n\n", false));

        for(int i=0; i<= testData.numInstances()-1; i++)
        {
            double c = knn.classifyInstance(testData.instance(i));

            System.out.println(c);

        }

    }
    catch (Exception ex) {
        ex.printStackTrace();
    }

0 个答案:

没有答案