Bagaimana cara menghitung probabilitas prediksi suatu kelas di Java Weka Api?

9

Saya mengembangkan model prediksi menggunakan Java Weka api. Saya dapat memprediksi kelas untuk instance baru menggunakan kode berikut:

double predictClass = classifer.classifyInstance(instance)

Namun, saya perlu probabilitas kelas, bukan nilai kelas. Terima kasih sebelumnya atas dukungan Anda.

Howa Begum
sumber

Jawaban:

8

Selamat datang di komunitas! Anda dapat mengganti kode Anda dengan kode berikut.

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]));
      }

Lingkaran ini mencetak keempat nilai.
Semoga ini bisa membantu Anda.

Rejaul Karim
sumber
1
Terima kasih atas tanggapan cepat Anda. Tapi, saya tidak mengerti apa classifier.distributionForInstance (instance) mengembalikan persis
Howa Begum
1
@ HowaBegum Anda dapat melihat nilai kembali dengan mencetak konten prediksi variabel. Ini akan mengembalikan empat nilai seperti kelas o, probabilitas prediksi, kelas 1, probabilitas prediksi. Semoga Anda mengerti
Rejaul Karim
1
Sekali lagi terima kasih atas bantuan Anda. Ini sangat membantu saya.
Howa Begum
1
Saya senang itu membantu.
Rejaul Karim
1

Ini bekerja dengan baik, terima kasih banyak. Ada beberapa koreksi:

    //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]));
        }
Alex Titov
sumber