来自Matlab的Weka:属性选择

时间:2012-08-20 15:54:36

标签: matlab attributes selection weka

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

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

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

1 个答案:

答案 0 :(得分:3)

两件事:

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

例如:

>> !man ls

这意味着您可以在终端中执行的操作(例如来自this tutorial),您应该能够在MATLAB中完成。

其次,你可以access Java libraries from MATLAB。您可以通过将函数导入MATLAB工作区来访问weka.attributeSelection中的函数,然后像在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