2

環境変数に Weka.jar ファイルを追加し、すでに ARFF ファイルを Matlab にロードしてインスタンスを読み取ることができます。今、一連のトレーニングとテストのファイルのペアでバッチ属性選択を実行したいと思いますが、Matlab からそれを行う方法に関するチュートリアルが見つからないようです。

15 個のトレーニング ファイルと 15 個のテスト ファイルのセットが 1 回の試行のみである (そして、さまざまな ARFF ファイルを使用した多くの試行がある) ため、weka コマンド ラインを使用して実行したくないため、Matlab からそれらを高速にループ処理したいと考えていました。 .

あなたの助けは非常に高く評価されます:)ありがとう!

4

1 に答える 1

3

2つのこと:

まず、MATLAB デスクトップ (MATLAB コンソール) を使用していて、コマンドの前に感嘆符 (!) を付けると、コマンド ライン引数を実行できます。これはスクリプト (.m MATLAB ファイル) でも機能します。

元:

>> !man ls

これが意味することは、(このチュートリアルのように) ターミナルでできることは、MATLAB でもできるはずだということです。

次に、MATLAB から Java ライブラリにアクセスできます。weka.attributeSelection関数をMATLAB ワークスペースにインポートしてから、Java で行う場合と同様に必要なメソッドを使用して、関数にアクセスできます。たとえば、次の .m ファイルは Matthew Dunham によって作成され、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 に答える