12

アプリケーションで Weka と共に LibSVM 分類器を使用したいと考えています。どうすれば(またはどこで良い例を見つけることができますか)これを行うことができますか?

4

5 に答える 5

18

確かに少し遅くなりましたが、とにかく答えます。プロジェクトでは、weka.jar、libsvm.jar、および wlsvm.jar (libsvm ラッパー) を使用する必要があります。したがって、ビルドパスまたはクラスパスなどに3つのjarをすべて含めるだけです。

ここから wlsvm.jar を取得できます: http://ailab.ist.psu.edu/yasser/wlsvm.html

ここから weka を入手できます: http://www.cs.waikato.ac.nz/ml/weka/

また、ここから libsvm を取得できます: http://www.csie.ntu.edu.tw/~cjlin/libsvm/

これを weka 3.7.7 または 3.7.8 で動作させることはできませんでしたが、3.6.8 (今日の最新の安定バージョン) で動作させることができました。

また、svnlib から .class ファイルを取得し、それらをプロジェクトへのビルド パスに含める必要があったためです。.class ファイルをビルドするには、SVNLib/java の make ファイルを使用します。

開始するための小さなコードを次に示します。

        DataSource source = new DataSource(new File("mycsvinputfile"));
        System.out.println(source.getStructure());
        Instances data = source.getDataSet();

        // setting class attribute if the data format does not provide this information
        // For example, the XRFF format saves the class attribute information as well
        if (data.classIndex() == -1)
            data.setClassIndex(data.numAttributes() - 1);

        //initialize svm classifier
        LibSVM svm = new LibSVM();
        svm.buildClassifier(data);

幸運を。

于 2012-12-07T15:33:21.097 に答える
8

新しいバージョンでは、weka.jar が必要で、次のように svm を呼び出します。

WekaPackageManager.loadPackages( false, true, false );
AbstractClassifier classifier = ( AbstractClassifier ) Class.forName(
            "weka.classifiers.functions.LibSVM" ).newInstance();

オプションを指定したい場合は、次のようにオプションを設定します

String options = ( "-S 0 -K 0 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 40.0 -C 1.0 -E 0.001 -P 0.1" );
String[] optionsArray = options.split( " " );
    classifier.setOptions( optionsArray );

最後に分類器をトレーニングします

classifier.buildClassifier( train );
于 2015-08-10T05:00:25.543 に答える
5

Weka の連中は、最新バージョンで Maven Central から利用できるようにすることで、私たちの仕事を大幅に簡単にしてくれました。

ここから依存関係を取得するだけです: http://mvnrepository.com/artifact/nz.ac.waikato.cms.weka/LibSVM

依存関係に関する限り、すべてが機能します。ラッパーをいじったり、jar をクラスパスに追加したりする必要はありません。

バージョン 3.7.12 を使用していますが、GUI にパッケージ マネージャー機能が追加されてから使用可能になっていると思います。

于 2015-04-17T05:40:58.237 に答える
5

最新バージョンの weka (3.7.9) で libSVM ライブラリを使用するには、weka アプリケーションの「パッケージ マネージャー」を使用して libSVM パッケージをインストールするだけです。

最後に、Java プロジェクトから、「パッケージ マネージャー」によって作成された LibSVM ライブラリをクラスパスに追加する必要があります。

通常は " (HOME)\wekafiles\packages\LibSVM " ディレクトリにあります。

于 2013-04-26T14:53:41.260 に答える
3

Weka と libsvm を組み合わせるには、このリンクに従って ください http://www.cs.iastate.edu/~yasser/wlsvm/

weka は ROC、リコールなどの計算に適しています.... libsvm は分類、回帰などに適しています...

于 2013-04-14T14:01:08.527 に答える