我将Weka.jar文件添加到我的环境变量中,并且已经可以将ARFF文件加载到Matlab中并读取实例。现在我想在一组训练和测试文件对上执行批处理属性选择,但我似乎找不到任何关于如何从Matlab那样做的教程。
我不想通过weka命令行这样做,因为我有一组15个训练文件,只有一个试验的15个测试文件(我有很多试用不同的ARFF文件)因此我想循环它们从Matlab快速。
非常感谢您的帮助:)谢谢!
答案 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