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