Bağlam: Ben üniversitelerin istatistiklerinde (yarı unutulmuş) bazı deneyimlere sahip bir programcıyım. Son zamanlarda http://akinator.com üzerine tökezledim ve başarısız olmasına çalışmak için biraz zaman geçirdim. Kim değildi? :)
Nasıl çalışabileceğini bulmaya karar verdim. İlgili blog gönderilerini okuduktan ve okuduktan ve bazı (sınırlı) bilgilerimi ortaya çıkan karışıma ekledikten sonra aşağıdaki modelle geliyorum (Yanlış gösterimi kullanacağımdan eminim, lütfen bunun için beni öldürmeyin):
Konular (S) ve Sorular (Q) vardır. Kestirimcinin amacı, kullanıcının şimdiye kadar topladığı sorular ve cevaplar verildiği düşünülen konu olma olasılığı en yüksek olan S konusunu seçmektir.
Oyun G'nin bir dizi soru ve cevaplar kümesi olmasına izin verin: .
Ardından yordayıcı arar .
Konular için önceden ( ) sadece konunun tahmin edilme sayısının toplam oyun sayısına bölünmesi olabilirdi.
Tüm cevapların bağımsız olduğu varsayımıyla, G oyunu verilen S konusunun olasılığını şu şekilde hesaplayabiliriz:
Kullanılan belirli bir konu olsa da hangi soruların ve cevapların verildiğini takip edersek hesaplayabiliriz :
Şimdi, denekler üzerinde bir olasılık dağılımı tanımlamaktadır ve bir sonraki soruyu seçmemiz gerektiğinde, bu dağılımın entropisinde beklenen değişikliğin maksimum olduğu soruyu seçmemiz gerekmektedir:
Bunu uygulamaya çalıştım ve işe yarıyor. Ancak, açık bir şekilde, konu sayısı her hareketten sonra nin yeniden hesaplanması ve güncellenmiş dağıtım hesaplanması ihtiyacı nedeniyle performans düşer . soru seçimi.P ( S | G ∨ { q j , a } )
Bilgilerimin sınırlarıyla kısıtlanmış olarak, sadece yanlış modeli seçtiğimden şüpheleniyorum. Ya da, belki matematikte bir hata vardır. Lütfen beni aydınlatın: milyonlarca konu ve binlerce soru ile başa çıkabilmek için kendimi nelere tanıtalım veya öngörücüyü nasıl değiştirmeliyim?