java语言调用weka

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

    }
}
Weka是一个非常强大的机器学习软件,它提供了丰富的算法和工具,可以方便地进行数据挖掘和机器学习任务。其中包括了K均值聚类算法,可以通过Java编程来实现。 Java实现K均值聚类需要以下步骤: 1. 导入Weka库:在Java程序中,首先需要导入Weka库。可以通过在代码中引入相应的Weka库来实现。例如可以导入weka.core和weka.clusterers两个库。 2. 读取数据集:使用Weka提供的库,可以方便地读取数据集。可以使用weka.core.Instances类来读取和存储数据集,通过加载数据文件,将数据集保存到实例对象中。 3. 设置聚类参数:在进行聚类之前,需要设置相应的聚类参数。对于K均值聚类算法,需要设置簇的数量K,以及其他一些参数,例如最大迭代次数等。 4. 运行聚类算法:使用weka.clusterers包下的SimpleKMeans类,可以方便地实现K均值聚类算法。使用这个类可以对数据集进行聚类操作,可以通过设置相关参数进行聚类,例如设置聚类的簇心数量、迭代次数等。 5. 输出聚类结果:聚类完成后,可以通过聚类模型获得每个数据点所属的簇类别。可以通过获取每个实例的聚类编号,将数据点对应的聚类结果进行输出,用于后续的分析和应用。 以上就是通过Java实现K均值聚类的大致步骤。通过调用Weka提供的聚类算法和工具类,可以方便地实现K均值聚类,并从中获取聚类结果。Java语言提供了强大的编程能力,结合Weka的算法和工具,可以在数据挖掘和机器学习任务中发挥较大的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值