Weka开发[13]-Ensemble

来源:互联网 发布:mysql tar.gz 安装 编辑:程序博客网 时间:2024/05/22 05:29

转自 Koala++'s blog  感谢原作者

 

这一篇介绍一下如何使用Ensemble的类,不过提醒一下,不要什么都来个Ensemble,对这种毫无想象力可言的做法,我真是有点无语。

       我已经写了这么多篇了,我也有点累了,这篇也是有人发E-mail让我写的。大家就先自己看吧,至于是不是对的,我以后有机会了我看了,再告诉大家了。

package instanceTest;

import java.io.FileReader;

import weka.classifiers.Classifier;

import weka.classifiers.bayes.NaiveBayes;

import weka.classifiers.functions.LibSVM;

import weka.classifiers.functions.SMO;

import weka.classifiers.meta.AdaBoostM1;

import weka.classifiers.meta.Vote;

import weka.classifiers.trees.J48;

import weka.core.Instances;

import weka.core.SelectedTag;

publicclass EnsembleTest

{

private Instancesm_instances =null;

publicvoid getFileInstances( String fileName )throws Exception

{

FileReader frData = new FileReader( fileName );

m_instances =new Instances( frData );

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

}

publicvoid AdaBoostClassify()throws Exception

{

LibSVM baseClassifier = new LibSVM();

AdaBoostM1 classifier = new AdaBoostM1();

classifier.setClassifier( baseClassifier );

classifier.buildClassifier( m_instances );

System.out.println( classifier.classifyInstance(m_instances.instance( 0 ) ) );

}

publicvoid VoteClassify()throws Exception

{

Classifier baseClassifiers[] = new Classifier[3];

baseClassifiers[0] = new J48();

baseClassifiers[1] = new NaiveBayes();

baseClassifiers[2] = new SMO();

Vote classifier = new Vote();

SelectedTag tag = new SelectedTag(Vote.MAJORITY_VOTING_RULE,Vote.TAGS_RULES);

classifier.setCombinationRule( tag );

classifier.setClassifiers( baseClassifiers );

classifier.buildClassifier( m_instances );

System.out.println( classifier.classifyInstance(m_instances.instance( 0 ) ) );

}

publicstaticvoid main( String[] args )throws Exception

{

EnsembleTest etest = new EnsembleTest();

etest.getFileInstances( "F://Program Files//Weka-3-6//data//contact-lenses.arff");

etest.AdaBoostClassify();

etest.VoteClassify();

}

}