简单列举几个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);
}
}