Algoritmo: búsqueda binaria cuando los valores son inciertos


11

Necesito un algoritmo para hacer una búsqueda binaria cuando la prueba en cada paso puede dar un resultado incorrecto.

Antecedentes: necesito colocar a los estudiantes en el más apropiado de los 12 niveles de dificultad. El enfoque actual es la fuerza bruta y hace 60 preguntas de opción múltiple de 4 respuestas de dificultad creciente, deteniéndose después de tres errores, y coloca al estudiante en el nivel: floor((score - 1) / 5) + 1con un mínimo de 1.

Nos preocupa que los clientes se apaguen cuando se enfrentan a un examen con hasta 60 preguntas antes de que realmente puedan usar el programa, por lo que nos gustaría minimizar la cantidad de preguntas formuladas en el examen. También nos preocupa que los clientes se salten la prueba de ubicación (porque parece larga) y luego abandonen el programa porque parece demasiado fácil.

La ubicación media es en realidad en el nivel 2, por lo que más del 50% de los estudiantes obtienen una puntuación <11 (es decir, responden <14 preguntas). Como anécdota, esto puede deberse a que se aburren y dejan de tomar en serio las preguntas (son niños pequeños).

Solución propuesta: Implemente la prueba como una búsqueda binaria en doce elementos, comenzando con una pregunta en el nivel de dificultad 6/7 y continuando en función de si la pregunta es correcta o incorrecta. En teoría, esto podría encontrar el nivel de dificultad adecuado para ellos en 3-4 preguntas.

El problema: como se puede deducir de la prueba existente que solo termina después de tres respuestas incorrectas y usa 60 preguntas para elegir entre 12 niveles, queremos permitir que los estudiantes obtengan respuestas correctas (que deberían hacer el 25% del tiempo) o accidentalmente dar respuestas incorrectas (dedos gordos, preguntas erróneas, etc.). Esto es aún más importante con una búsqueda binaria porque encontrar una respuesta correcta en la primera pregunta podría colocarlo en la mitad superior de los niveles de dificultad, incluso si responde mal todas las demás preguntas.

Entonces, ¿existe un algoritmo reconocido para una búsqueda binaria en el que no pueda garantizar que una prueba individual sea precisa?

Ingenuamente, podría hacer lo mejor de 3 o 5 preguntas en cada paso, y, dado que las primeras preguntas tienen un mayor efecto en el resultado final que las preguntas posteriores, tal vez agregue estas preguntas adicionales solo a los primeros pasos y no a los posteriores. ¿Hay algo más que eso?


¿Por qué pretest en absoluto? Simplemente autoajusta las preguntas en el examen real
Scott Stensland

@ScottStensland, pensamiento interesante. Sin embargo, el programa real es de 12 'mapas' de 10 'lecciones', cada una de las cuales consta de 8-15 'actividades' de lienzo HTML5 o juegos, cada uno de diseño muy variable. Los estudiantes progresan a través de los mapas y reciben recompensas y premios / certificados después de cada lección y mapa. Si estuviéramos ajustando constantemente su nivel después de cada juego, sería bastante desorientador, y necesitaríamos incorporar retroalimentación en todos nuestros juegos existentes y descubrir las reglas para la retroalimentación para cada juego también.

@ Kirill, ¿hay alguna manera fácil de mover / publicar una pregunta en otra sección?

@ jim Puede marcarlo para que el moderador le pida que mueva la pregunta, o también puede eliminar esta pregunta aquí y crear una nueva pregunta idéntica allí. Por lo general, se desaconseja la publicación cruzada (tener preguntas idénticas en diferentes sitios al mismo tiempo). Hice esa sugerencia porque me parece una pregunta relativamente sencilla de estadísticas / aprendizaje automático que obtendría una respuesta clara mucho más rápido allí.
Kirill

Respuestas:


2

Trate el problema como una serie de probabilidades bayesianas; inicialmente, suponga que hay una probabilidad de 1/13 de que el niño esté justo debajo de cada nivel y, para completar, una probabilidad de 1/13 de que esté fuera de la cima. Luego: 1) Encuentre el nivel medio de su matriz, es decir, el nivel donde la probabilidad de estar por encima de él es más cercano al 50% 2) Hágale una pregunta al niño de ese nivel. 3) Use la regla de Bayes para actualizar la probabilidad de cada celda, suponiendo una tasa de error del 25%. Termina y devuelve el nivel más probable cuando una celda alcanza una probabilidad suficientemente alta, o supongo que cuando te quedas sin preguntas en un nivel.

Un tratamiento más riguroso de este algoritmo está aquí ; Recomiendo leerlo antes de implementar.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.