代码之家  ›  专栏  ›  技术社区  ›  Mariam H

来自Matlab的Weka:属性选择

  •  2
  • Mariam H  · 技术社区  · 14 年前

    我将Weka.jar文件添加到我的环境变量中,并且已经可以将ARFF文件加载到Matlab中并读取实例了。现在,我想在一组训练和测试文件对上执行批属性选择,但我似乎找不到任何关于如何从Matlab中做到这一点的教程。

    我不想通过weka命令行来做这件事,因为我有一组15个训练文件,15个测试文件只用于一次试验(我有很多不同ARFF文件的试验),所以我想从Matlab中快速循环它们。

    非常感谢您的帮助:)谢谢!

    1 回复  |  直到 14 年前
        1
  •  3
  •   kitchenette    14 年前

    两件事:

    首先,如果您在MATLAB桌面(MATLAB控制台)中,并且您的命令前面有一个感叹号(!),那么您可以运行命令行参数。这也适用于脚本(.m MATLAB文件)。

    例如:

    >> !man ls
    

    这意味着你可以在终端中做的事情(比如 this tutorial ),你应该会在MATLAB中做。

    第二,你可以 access Java libraries from MATLAB 。您可以从访问功能 weka.attributeSelection 通过将其导入到您的MATLAB工作空间中,然后使用您在java中所需的方法。例如,这里有一个由Matthew Dunham编写的.m文件,它导入了一个weka库( weka.core.converters.ArffLoader )并在.m文件中使用它:

    function wekaOBJ = loadARFF(filename)
    % Load data from a weka .arff file into a java weka Instances object for
    % use by weka classes. This can be converted for use in matlab by passing
    % wekaOBJ to the weka2matlab function. 
    %
    % Written by Matthew Dunham
    
        if(~wekaPathCheck),wekaOBJ = []; return,end
        import weka.core.converters.ArffLoader;
        import java.io.File;
    
        loader = ArffLoader();
        loader.setFile(File(filename));
        wekaOBJ = loader.getDataSet();
        wekaOBJ.setClassIndex(wekaOBJ.numAttributes -1);
    end