0

WEKA のカスタム分類子を作成しましたが、インスタンスの予測クラス以外の情報を提供する必要があります。具体的には、トレーニング インスタンスのサブセットのそれぞれが、予測されたクラスに与える影響がどれほど大きかったかを示すリストです。

additionalMeasureProducerGUI に文字列を出力する必要があるため、インターフェイスは機能しません。ユーザーがこの情報を出力することを選択できるようにしたいと思います。「分類子評価オプション」ダイアログボックスの「出力モデル」オプションでうまくいくことを期待していましたが、WEKA はtoString()分類が行われる前に分類子のメソッドを呼び出してしまいます。私の分類子はweka.classifiers.lazyパッケージに含まれているため、これはバグだと思います。つまり、分類するインスタンスがそれに与えられるまで構築されません。

カスタムWEKA分類子にGUI出力機能を追加する方法を知っている人はいますか?

4

1 に答える 1

2

これを適切に行う唯一の方法はweka.classifiers.evaluation.output.prediction.AbstractOutput、分類器でのみ使用できる特別なものを実装することでした。globalInfo()、およびで指定しgetDisplay()doPrintClassificationメソッドは次のように開始します。

@Override
protected void doPrintClassification(Classifier classifier, Instance inst,
        int index) throws Exception {
    if (!(classifier instanceof MyClassifier))
        throw new IllegalArgumentException(
                "This output can only be used with the MyClassifier classifier");

    MyClassifier mc = (MyClassifier) classifier;

そうすれば、適切なメソッドを呼び出して、分類子の情報を取得できました。CSV、HTML、およびプレーンテキストのすべてを記述するのは多すぎるため、特定の形式が必要な場合は、カスタム出力クラスから特別な情報を取得し、他の出力クラスから通常の情報を取得するかどうかはユーザーの選択に任せています。

于 2012-07-06T15:09:45.707 に答える