Algorithme: recherche binaire lorsque les valeurs sont incertaines


11

J'ai besoin d'un algorithme pour faire une recherche binaire lorsque le test à chaque étape peut donner le mauvais résultat.

Contexte: Je dois placer les élèves sur le niveau de difficulté le plus approprié parmi 12. L'approche actuelle est la force brute et pose 60 questions à choix multiples à 4 réponses de difficulté croissante, s'arrêtant après trois mauvaises, et place l'élève au niveau: floor((score - 1) / 5) + 1avec un minimum de 1.

Nous souhaitons que les clients soient désactivés lorsqu'ils font face à un test contenant jusqu'à 60 questions avant de pouvoir réellement utiliser le programme.Nous souhaitons donc minimiser le nombre de questions posées dans le test. Nous craignons également que les clients sautent le test de classement (car il semble long), puis abandonnent le programme car il semble trop facile.

Le placement médian est en fait au niveau 2, donc 50 +% des élèves obtiennent un score <11 (c'est-à-dire une réponse <14 questions). Pour l'anecdote, cela peut être parce qu'ils s'ennuient et cessent de prendre les questions au sérieux (ce sont de jeunes enfants).

Solution proposée: implémentez le test sous la forme d'une recherche binaire sur douze éléments, en commençant par une question au niveau de difficulté 6/7 et en poursuivant selon que la question est correcte ou non. En théorie, cela pourrait trouver le niveau de difficulté approprié pour eux dans 3-4 questions.

Le problème: Comme vous pouvez le deviner à partir du test existant se terminant uniquement après trois mauvaises réponses et en utilisant 60 questions pour choisir entre 12 niveaux, nous voulons faire en sorte que les élèves fassent des réponses correctes (ce qu'ils devraient faire 25% du temps) ou accidentellement donner des réponses incorrectes (gros doigts, question mal lue, etc.). Cela est encore plus important avec une recherche binaire car donner une bonne réponse à la première question pourrait vous placer dans la moitié supérieure des niveaux de difficulté même si vous vous trompez sur toutes les autres questions.

Existe-t-il donc un algorithme reconnu pour une recherche binaire où vous ne pouvez pas garantir l'exactitude d'un test individuel?

Naïvement, je pourrais essayer au mieux 3 ou 5 questions à chaque étape, et, comme les premières questions ont un effet plus important sur le résultat final que les questions ultérieures, peut-être n'ajouter ces questions supplémentaires qu'aux premières étapes et non aux dernières. Y at-il plus que cela?


Pourquoi prétester du tout? Ajustez simplement les questions sur le test réel
Scott Stensland

@ScottStensland, pensée intéressante. Cependant, le programme réel est de 12 «cartes» de 10 «leçons» chacune avec chaque leçon composée de 8 à 15 «activités» de toile HTML5 ou de jeux de conception très variable. Les élèves progressent dans les cartes et reçoivent des récompenses et des récompenses / certificats après chaque leçon et carte. Si nous ajustions constamment leur niveau après chaque jeu, ce serait assez désorientant, et nous aurions besoin d'intégrer des commentaires dans tous nos jeux existants et de comprendre les règles de rétroaction pour chaque jeu également.

@Kirill, y a-t-il un moyen facile de déplacer / transférer une question vers une autre section?

@jim Vous pouvez le signaler à l'attention du modérateur pour lui demander de déplacer la question, ou vous pouvez également supprimer cette question ici et créer une nouvelle question identique là-bas. Le crossposting (avoir des questions identiques sur différents sites en même temps) est généralement déconseillé. J'ai fait cette suggestion parce qu'elle me semble être une question relativement simple de statistiques / apprentissage automatique qui obtiendrait une réponse claire beaucoup plus rapidement là-bas.
Kirill

Réponses:


2

Traitez le problème comme un tableau de probabilités bayésiennes; dans un premier temps, supposons qu'il y a 1/13 de chance que l'enfant soit juste en dessous de chaque niveau et, pour être complet, 1/13 de chance qu'ils soient hors du haut. Ensuite: 1) Trouvez le niveau médian de votre tableau, c'est-à-dire le niveau où la probabilité d'être au-dessus est la plus proche de 50% 2) Posez une question à l'enfant à partir de ce niveau. 3) Utilisez la règle de Bayes pour mettre à jour la probabilité de chaque cellule, en supposant un taux d'erreur de 25%. Terminez et renvoyez le niveau le plus probable lorsqu'une cellule atteint une probabilité suffisamment élevée, ou je suppose lorsque vous manquez de questions à un niveau.

Un traitement plus rigoureux de cet algorithme est ici ; Je recommande de le lire avant de l'implémenter.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.