【问题标题】:Weka from Matlab : Attribute Selection来自 Matlab 的 Weka:属性选择
【发布时间】:2012-08-15 23:33:20
【问题描述】:
我将 Weka.jar 文件添加到我的环境变量中,并且已经可以将 ARFF 文件加载到 Matlab 中并读取实例。现在我想对一组训练和测试文件对执行批量属性选择,但我似乎无法从 Matlab 中找到任何关于如何做到这一点的教程。
我不想通过 weka 命令行执行此操作,因为我有一组 15 个训练文件和 15 个测试文件,仅用于一次试验(而且我有很多试验使用不同的 ARFF 文件),因此我想循环它们从 Matlab 快速。
我们将非常感谢您的帮助 :) 谢谢!
【问题讨论】:
标签:
matlab
attributes
selection
weka
【解决方案1】:
两件事:
首先,如果您在MATLAB桌面(MATLAB控制台)中,并且您将使用感叹号(!)前言您的命令,那么您可以运行命令行参数。这也适用于脚本(.m MATLAB 文件)。
例如:
>> !man ls
这意味着你可以在终端中做的事情(比如来自this tutorial),你应该在Matlab中做到。
其次,你可以access Java libraries from MATLAB。您可以通过将Matlab工作区导入weka.attributeSelection然后使用您在Java中执行的方法来访问weka.attributeSelection的函数。例如,这里是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