java语言调用weka

来源:互联网 发布:淘宝pc与手机尺寸 编辑:程序博客网 时间:2024/05/21 10:23

简单列举几个demo,详细代码见:
http://download.csdn.net/detail/kaikai_sk/9827913

package callWeka;import java.io.File;import weka.core.Instances;import weka.core.converters.CSVSaver;import weka.core.converters.ConverterUtils.DataSink;import weka.core.converters.ConverterUtils.DataSource;public class Arff2CSV{    public static void main(String[] args) throws Exception     {        Instances data=new Instances(DataSource.read("data/weather.nominal.arff"));        System.out.println("完成加载数据");        DataSink.write("data/weather.csv", data);        System.out.println("完成使用DataSink类保存数据");        //明确指定转换器,保存为csv文件        CSVSaver saver=new CSVSaver();        saver.setInstances(data);        saver.setFile(new File("data/weather2.csv"));        saver.writeBatch();        System.out.println("完成制定CSVsaver保存csv文件");    }}
package callWeka;import java.nio.file.DirectoryStream.Filter;import weka.core.Instances;import weka.core.converters.ConverterUtils.DataSource;import weka.filters.unsupervised.attribute.Remove;public class OptionHandler{    public static void main(String[] args) throws Exception     {        //加载数据文件        Instances data=new Instances(DataSource.read("data/weather.nominal.arff"));        System.out.println("数据集内容");        System.out.println(data);        //手工组装string数组        System.out.println("\n\n手工组装string数组");        String[] options=new String[2];        options[0]="-R";        options[1]="1";        Remove rm=new Remove();        //移除数据集的第一列        rm.setOptions(options);        //数据集过滤        rm.setInputFormat(data);        Instances inst1=weka.filters.Filter.useFilter(data, rm);        System.out.println("数据集过滤后的内容");        System.out.println(inst1);        //使用weka.core.Utils类里面的splitOptions(String)方法        System.out.println("使用Utils类里面的splitOptions(String)方法");        String[] options2=weka.core.Utils.splitOptions("-R 1");        Remove rm2=new Remove();        rm2.setOptions(options2);        rm2.setInputFormat(data);        Instances inst2=weka.filters.Filter.useFilter(data, rm2);        System.out.println("数据集过滤后的内容");        System.out.println(inst2);        //使用属性的set方法        System.out.println("\n\n 使用属性的set方法");        Remove rm3=new Remove();        rm3.setAttributeIndices("1");        rm3.setInputFormat(data);        Instances inst3=weka.filters.Filter.useFilter(data, rm3);        System.out.println("数据集过滤后的内容");        System.out.println(inst3);    }}
package callWeka;import weka.core.Instances;import weka.core.converters.ConverterUtils.DataSource;public class testWeka {    public static void main(String[] args) throws Exception     {        DataSource source=new DataSource("/data/web_2_49_s1.csv");        Instances data=source.getDataSet();        if(data.classIndex()==-1)        {            data.setClassIndex(data.numAttributes()-1);        }    }}
package callWeka;import java.io.File;import weka.core.Instances;import weka.core.converters.ArffLoader;import weka.core.converters.Loader;import weka.core.converters.ConverterUtils.DataSource;public class LoadArffFile {    public static void main(String[] args) throws Exception     {        System.out.println("使用DataSource类的read方法来加载arff文件");        Instances data1=DataSource.read("data/weather.nominal.arff");        System.out.println("数据集内容:");        System.out.println(data1);        System.out.println("使用直接制定加载器的方法来加载Arff文件");        //创建ArffLoader实例        ArffLoader arffLoader=new ArffLoader();        arffLoader.setSource(new File("data/weather.nominal.arff"));        Instances data2=arffLoader.getDataSet();        System.out.println("数据集内容");        System.out.println(data2);    }}
0 0
原创粉丝点击