利用weka.jar算法改进

来源:互联网 发布:windows一直在准备配置 编辑:程序博客网 时间:2024/06/10 14:43

如下,其中KNN_lsh extends Classifier,并实现了buildClassifier函数和distributionForInstance函数。以下只是类中代码片段,用以说明如何利用weka.jar去做测试等

    public static void main(String[] args) throws Exception {        Instances train=DataSource.read("C:\\Users\\Harry\\Desktop\\ceshi\\breast-cancer.arff");        train.setClassIndex(train.numAttributes()-1);               Instances test = DataSource.read("C:\\Users\\Harry\\Desktop\\ceshi\\breast-cancer-test.arff");        test.setClassIndex(test.numAttributes()-1);              if (!train.equalHeaders(test)) {            throw new Exception("测试集和训练集不同");        }        KNN_lsh classifier=new KNN_lsh();        classifier.buildClassifier(train);        for (int i = 0; i < test.numInstances(); i++) {            double pred = classifier.classifyInstance(test.instance(i));            double[] dist = classifier.distributionForInstance(test.instance(i));            System.out.print((i + 1) + "   "                    + test.instance(i).toString(test.classIndex()) + "   "                    + test.classAttribute().value((int) pred) + "   ");            if (pred != test.instance(i).classValue()) {                System.out.print("wrong");            } else {                System.out.print("correct");            }            System.out.println("   " + Utils.arrayToString(dist));//            System.out.println(pred);        }    }



输出如下:

1   no-recurrence-events   no-recurrence-events   correct   0.8333333333333334,0.166666666666666662   no-recurrence-events   no-recurrence-events   correct   0.5,0.53   no-recurrence-events   no-recurrence-events   correct   0.5833333333333334,0.41666666666666674   no-recurrence-events   recurrence-events   wrong   0.4166666666666667,0.58333333333333345   no-recurrence-events   no-recurrence-events   correct   0.8333333333333334,0.166666666666666666   no-recurrence-events   no-recurrence-events   correct   0.6666666666666666,0.3333333333333333
原创粉丝点击