朴素贝叶斯分类器进行10轮交叉测试

import java.io.File;
import weka.classifiers.Classifier;
import weka.classifiers.Evaluation;
import weka.classifiers.bayes.NaiveBayes;
import weka.core.converters.ArffLoader;
import weka.core.Instance;
import weka.core.Instances;
import weka.core.converters.ArffSaver;
import weka.core.converters.CSVLoader;


public class NaiveBayesTest {


public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String filename="C:\\Users\\PC\\Desktop\\breast-cancer-wisconsin.csv";
String savearff = "C:\\Users\\PC\\Desktop\\breast-cancer-wisconsin.arff";
CSVLoader csv =new CSVLoader();
csv.setSource(new File(filename));
Instances datasrc = csv.getDataSet();
ArffSaver saver = new ArffSaver();
saver.setInstances(datasrc);
saver.setFile(new File(savearff));
saver.writeBatch();
ArffLoader arffloader = new ArffLoader(); //Reads a source that is in arff (attribute relation file format) format.
File inputFile = new File("C:\\Users\\PC\\Desktop\\breast-cancer-wisconsin.arff");//读入训练文件
arffloader.setFile(inputFile);
Instances wisconsin = arffloader.getDataSet(); // 得到格式化的训练数据
wisconsin.setClassIndex(wisconsin.numAttributes()-1);//设置分类属性所在行号(第一行为0号),instancesTrain.numAttributes()可以取得属性总数
Classifier cfs = null; 
cfs = (Classifier) Class.forName(  
"weka.classifiers.bayes.NaiveBayes").newInstance();  
// 使用训练样本进行分类    
cfs.buildClassifier(wisconsin);  


// 使用测试样本测试分类器的学习效果  
Instance testInst;  
Evaluation testingEvaluation = new Evaluation(wisconsin);  
int length = wisconsin.numInstances();  
for(int j=0;j<10;j++){
for (int i = 0; i < length; i++) {  
testInst = wisconsin.instance(i);  
testingEvaluation.evaluateModelOnceAndRecordPrediction(cfs,testInst);            
}  
System.out.println("分类的正确率" + (1 - testingEvaluation.errorRate()));  
}
// 打印分类结果  
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值