Algoritma: Pencarian biner ketika nilai tidak pasti


11

Saya membutuhkan algoritma untuk melakukan pencarian biner ketika tes pada setiap langkah dapat memberikan hasil yang salah.

Latar belakang: Saya perlu menempatkan siswa pada 12 tingkat kesulitan yang paling tepat. Pendekatan saat ini adalah brute force dan mengajukan 60 pertanyaan pilihan ganda 4-jawaban untuk meningkatkan kesulitan, berhenti setelah tiga salah, dan menempatkan siswa pada level: floor((score - 1) / 5) + 1dengan minimal 1.

Kami khawatir bahwa pelanggan dimatikan ketika mereka menghadapi tes dengan hingga 60 pertanyaan sebelum mereka benar-benar dapat menggunakan program ini, jadi kami ingin meminimalkan jumlah pertanyaan yang diajukan dalam tes. Kami juga khawatir bahwa pelanggan melewatkan tes penempatan (karena tampaknya lama) dan kemudian meninggalkan program karena tampaknya terlalu mudah.

Penempatan median sebenarnya pada level 2, jadi 50 +% siswa mendapat skor <11 (yaitu menjawab <14 pertanyaan). Secara anekdot, ini mungkin karena mereka bosan dan berhenti menanggapi pertanyaan dengan serius (mereka anak-anak kecil).

Solusi yang Diusulkan: Melaksanakan tes sebagai pencarian biner lebih dari dua belas item dimulai dengan pertanyaan pada tingkat kesulitan 6/7 dan melanjutkan berdasarkan pada apakah mereka mendapatkan pertanyaan yang benar atau salah. Secara teori, ini bisa menemukan tingkat kesulitan yang sesuai untuk mereka dalam 3-4 pertanyaan.

Masalahnya: Seperti yang Anda tebak dari tes yang ada hanya berakhir setelah tiga jawaban yang salah dan menggunakan 60 pertanyaan untuk memilih antara 12 level, kami ingin memberikan kelonggaran bagi siswa yang mengabaikan jawaban yang benar (yang seharusnya mereka lakukan 25% dari waktu) atau tanpa sengaja memberikan jawaban yang salah (jari gemuk, salah membaca pertanyaan, dll). Ini bahkan lebih penting dengan pencarian biner karena mengabaikan jawaban yang benar pada pertanyaan pertama dapat menempatkan Anda di bagian atas tingkat kesulitan bahkan jika Anda salah menjawab setiap pertanyaan.

Jadi, apakah ada algoritma yang dikenal untuk pencarian biner di mana Anda tidak dapat menjamin bahwa tes individual akurat?

Secara naif saya mungkin mencoba yang terbaik dari 3 atau 5 pertanyaan di setiap langkah, dan, karena pertanyaan awal memiliki efek yang lebih besar pada hasil akhir daripada pertanyaan selanjutnya, mungkin menambahkan pertanyaan tambahan ini hanya untuk langkah awal dan bukan yang kemudian. Apakah ada yang lebih dari itu?


Kenapa pretest sama sekali? Cukup sesuaikan sendiri pertanyaan pada tes yang sebenarnya
Scott Stensland

@ScottStensland, pemikiran menarik. Namun program yang sebenarnya adalah 12 'peta' dari 10 'pelajaran' masing-masing dengan setiap pelajaran yang terdiri dari 8-15 'kegiatan' kanvas HTML5 atau permainan masing-masing dengan desain yang sangat bervariasi. Siswa maju melalui peta dan menerima hadiah dan penghargaan / sertifikat setelah setiap pelajaran dan peta. Jika kami terus-menerus menyesuaikan level mereka setelah setiap pertandingan, itu akan sangat membingungkan, dan kami perlu membangun umpan balik ke semua game kami yang ada dan mencari tahu aturan untuk umpan balik untuk setiap game juga.

@ Kirill, apakah ada cara mudah untuk memindahkan / crosspost pertanyaan ke bagian lain?

@ jim Anda dapat menandai untuk perhatian moderator untuk meminta mereka memindahkan pertanyaan, atau Anda juga dapat menghapus pertanyaan ini di sini dan membuat pertanyaan identik baru di sana. Crossposting (memiliki pertanyaan identik di situs yang berbeda pada saat yang sama) biasanya tidak disarankan. Saya membuat saran itu karena menurut saya seperti statistik / pertanyaan pembelajaran mesin yang relatif mudah yang akan mendapatkan jawaban yang jelas lebih cepat di sana.
Kirill

Jawaban:


2

Perlakukan masalah sebagai array probabilitas bayesian; awalnya, anggap ada peluang 1/13 bahwa anak itu hanya di bawah setiap tingkat dan, untuk kelengkapan, peluang 1/13 mereka berada di atas. Kemudian: 1) Temukan tingkat median dari larik Anda, yaitu tingkat di mana probabilitas berada di atasnya paling dekat dengan 50% 2) Ajukan pertanyaan pada anak dari tingkat itu. 3) Gunakan Bayes 'Rule untuk memperbarui probabilitas setiap sel, dengan asumsi tingkat kesalahan 25%. Hentikan dan kembalikan level yang paling mungkin ketika satu sel mencapai probabilitas yang cukup tinggi, atau saya kira ketika Anda kehabisan pertanyaan pada level.

Perlakuan yang lebih ketat dari algoritma ini ada di sini ; Saya sarankan membacanya sebelum diimplementasikan.

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.