Java Weka Apiでクラスの予測確率を計算するにはどうすればよいですか?


9

Java Weka apiを使用して予測モデルを開発しています。次のコードを使用して、新しいインスタンスのクラスを予測できます。

double predictClass = classifer.classifyInstance(instance)

ただし、クラス値ではなくクラス確率が必要です。よろしくお願いします。

回答:


8

コミュニティへようこそ!次のコードでコードを置き換えることができます。

double[] prediction=classifier.distributionForInstance(instance);

    for (int k<prediction.length; k++){
    System.out.println("Probability of class "+
      trains.classAttribute().value(k)+
       " : "+Double.toString(prediction[k]));
      }

このループは、4つの値すべてを出力します。
それがあなたを助けることを願っています。


1
早速の対応、ありがとうございました。しかし、classifier.distributionForInstance(instance)が正確に何を返すのか理解していません
Howa Begum

1
@HowaBegumでは、変数予測の内容を出力することで戻り値を確認できます。クラスo、予測確率、クラス1、予測確率などの4つの値を返します。理解して
ほしい

1
ご協力ありがとうございます。本当に助かります。
Howa Begum

1
お役に立てて嬉しいです。
Rejaul Karim

1

それはうまくいきます、ありがとうございます。いくつかの修正があります:

    //Dont forget create new Instance for prediction.
    DenseInstance newinstance = new DenseInstance(2);
    double[] prediction=classifier.distributionForInstance(newinstance);
    //Some correction in for 
        for (int k =0; k<prediction.length; k++){
            System.out.println("Probability of class "+
                    newinstance.classAttribute().value(k)+
                    " : "+Double.toString(prediction[k]));
        }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.