libsvm中java.lang.NoSuchFieldException: rand详解编程语言

今天碰到了这个问题,网上搜了好久,才找到原因是版本问题

我weka用的是3.6,后来把libsvm也改成了3.2的就可以了

在eclipse里引用的weka的api,所以把libsvm.jar,weka.jar都加进工程了

	public void test(){ 
		File inputfile = new File("test/train_message.arff"); 
        ArffLoader loader = new ArffLoader(); 
        try { 
			loader.setFile(inputfile); 
			Instances insTrain = loader.getDataSet(); 
	        insTrain.setClassIndex(insTrain.numAttributes()-1); 
//	        Classifier classifier = new WLSVM(); 
	         
	        Classifier classifier = (Classifier) Class.forName( 
	                  "weka.classifiers.functions.LibSVM").newInstance(); 
	        String[] optSVM = weka.core.Utils.splitOptions("-c 8.0 -g 8.0"); 
	        classifier.setOptions(optSVM); 
	        classifier.buildClassifier(insTrain); 
//	        Instance current = null; 
//	        while ((current = loader.getNextInstance(insTrain)) != null) { 
//	            classifier.distributionForInstance(current); 
//	        } 
	        inputfile = new File("test/test_message.arff"); 
	        loader.setFile(inputfile); 
	        Instances insTest = loader.getDataSet(); 
	        insTest.setClassIndex(insTest.numAttributes()-1); 
	        Evaluation eval = new Evaluation(insTest); 
	        eval.crossValidateModel(classifier, insTest, 10, new Random(1)); 
	        System.out.println(eval.errorRate()); 
	        System.out.println(classifier.toString()); 
		} catch (Exception e) { 
			// TODO Auto-generated catch block 
			e.printStackTrace(); 
		}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/industrynews/13775.html

(0)
上一篇 2021年7月19日 16:11
下一篇 2021年7月19日 16:11

相关推荐

发表回复

登录后才能评论