您的位置:首页 > 编程语言 > Java开发

weka+eclipse算法二次开发(1)

2016-01-15 21:07 429 查看
Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化的,基于JAVA环境下开源的机器学习以及数据挖掘软件。

安装完环境之后,weka的下载地址:http://www.cs.waikato.ac.nz/ml/weka/里的Developer Verstion

新建一个java工程,添加jar包,在weka的安装目录下(weka.jar和weka-src.jar)

以下是测试代码,使用的数据集是weka-3-7自带

package test;

import java.io.File;

import weka.classifiers.CheckClassifier;

import weka.classifiers.Classifier;

import weka.classifiers.Evaluation;

import weka.classifiers.evaluation.*;

import weka.core.Instance;

import weka.core.Instances;

import weka.core.converters.*;

public class testweka {

/**

* @param args

*/

public static void main(String[] args) {

Instances ins = null;

Classifier cfs = null;

try {

//读入训练测试样本

File file = new File("C:\\Program Files\\Weka-3-7\\data\\contact-lenses.arff");

ArffLoader loader = new ArffLoader();

loader.setFile(file);

ins = loader.getDataSet();

ins.setClassIndex(ins.numAttributes()-1);

//初始化分类器

cfs = (Classifier)Class.forName("weka.classifiers.bayes.NaiveBayes").newInstance();

//使用训练样本进行分类

cfs.buildClassifier(ins);

//使用测试样本测试分类器的学习效果

Instance testInst;

Evaluation testingEvaluation = new Evaluation(ins);

int length = ins.numInstances();

for(int i = 0; i < length ; i++){

testInst = ins.instance(i);

testingEvaluation.evaluateModelOnceAndRecordPrediction(cfs, testInst);

}

//打印分类结果

System.out.println("分类的正确率"+(1-testingEvaluation.errorRate()));

} catch (Exception e) {

e.printStackTrace();

}

}


}

一切正常的话,输出结果是:分类的正确率0.9583333333333334
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: