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.

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.


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]));
        }
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.