Matlab ile gerçekleştirilecek bu uygulamada 6 özellik, ve 4 sınıf etiketinden oluşan “Car Evaluation” veri seti kullanılmıştır. 1383 verinin 1000 adedi eğitim, 383 adedi test kümesi olarak kullanılmıştır. Uygulamada veri setinin çok az bir kısmında “Good” ve “Vgood” etiketi olduğundan ve daha çok veri setinin son kısımlarına bulunduğundan, oluşan confusion matriste başarı oranı “% 0” olmuştur. “Unacc” etiketi için başarı oranı % 98, “Acc” etiketi için ise başarı oranı yaklaşık % 76 olmuştur. Workspace oluşturulurken, veriler öncelikle Excel’e aktarılmıştır ve sonrasında Matlab’a import edilmiştir. Eğitim kümesi “CarEğitim”, eğitim kümesinin sınıf etiketi “CarClass”, test kümesi “CarTest” ve test kümesinin sınıf etiketi “ClassTest” olarak adlandırılmıştır. Workspace oluşturulduktan sonra aşağıda verilen komutlar ile başarı oranı hesaplanmıştır. Veri setinin açıklamalarını öğrenmek isterseniz daha önceden paylaştığım c# ile naive bayes uygulaması adlı makaleyi okuyabilirsiniz.
, CarClass);C1 = O1. predict(CarTest);
cMat1 = confusionmat(ClassTest, C1)
eğitim/test kümesinin sınıf etiketinden kast ettiğiniz şey nedir?
Sınıf etiketi dediğimiz bu örnekte, “Good, VGood, Acc, Unacc”. Matlabın hazır fonksiyonlarını kullanabilmek için de eğitim kümesinin sınıf etiketine ve test kümesinin sınıf etiketine farklı isimler vermek gerekiyor(CarClass, CarTest).
Merhaba ben matlaba çalışmaya yeni başladım ve Bayes örneğinizi yapmaya çalıştım verileri de uci den import ettim.
Şu anda hata veriyor ,hatam şu :The class NaiveBayes has no Constant property or Static method named ‘fitcnb’.
Önce fit yazdım sizinki gibi ama fitcnb kullanmamı söylüyor ,hata hakkında bir öneride bulunursanız sevinirim.
Merhaba,
Yazı çok eski ve hali hazırda matlab kurulu değil bende, bu yüzden net birşey söyleyemiyorum. Fakat matlab sürümünden kaynaklı olabilir.
Sizin aldığınız hatayı aratınca şu link geldi: https://www.mathworks.com/matlabcentral/answers/337356-error-the-class-randstream-has-no-constant-property-or-static-method-named-setdefaultstream
Burada sürümden kaynaklı olduğu ve hazır fonksiyonların adının değiştirilmesi gerektiği yazıyor.
Kolay gelsin.
koddaki naivebayes kısmını yazmayın düzelir ,sadece fitcnb ile çalışıyor
Hocam bu cMat1 4×4 neyi ifade ediyor ?
Cmat confusion matrix yani karmaşıklık matrisi demek. TP, TN, FP ve FN oranlarını verir. 4×4 ise matrisin boyutu. Bu örnekte 4 adet sınıf etiketi olduğu için 4×4 boyutunda matris oluştu. 2 sınıf etiketi olsaydı 2×2 boyutunda olacaktı.