2

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

我不想通过 weka 命令行执行此操作,因为我有一组 15 个训练文件和 15 个测试文件,仅用于一次试验(而且我有很多不同 ARFF 文件的试验),因此我想从 Matlab 快速循环它们.

您的帮助将不胜感激:) 谢谢!

4

1 回答 1

3

两件事情:

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

前任:

>> !man ls

这意味着您可以在终端中执行的操作(如本教程中的),您应该能够在 MATLAB 中执行。

其次,您可以从 MATLAB 访问 Java 库。您可以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
于 2012-08-20T19:22:09.530 回答