Algoritmo: Pesquisa binária quando os valores são incertos

11

Eu preciso de um algoritmo para fazer uma pesquisa binária quando o teste em cada etapa pode dar o resultado errado.

Antecedentes: preciso colocar os alunos nos 12 níveis de dificuldade mais adequados. A abordagem atual é a força bruta e faz 60 perguntas de múltipla escolha com 4 respostas e dificuldade crescente, parando depois de três erradas e colocando o aluno no nível: floor((score - 1) / 5) + 1com um mínimo de 1.

Estamos preocupados com o fato de os clientes serem desativados quando enfrentam um teste com até 60 perguntas antes de poderem usar o programa, portanto, gostaríamos de minimizar o número de perguntas feitas no teste. Também estamos preocupados que os clientes estejam pulando o teste de colocação (porque parece longo) e abandonando o programa porque parece muito fácil.

A colocação mediana está na verdade no nível 2, então 50% dos alunos têm uma pontuação <11 (isto é, respostas <14 perguntas). Curiosamente, isso pode ser porque eles ficam entediados e param de levar as perguntas a sério (são crianças pequenas).

Solução proposta: implemente o teste como uma pesquisa binária em doze itens, começando com uma pergunta no nível de dificuldade 6/7 e prosseguindo com base em se a pergunta está certa ou errada. Em teoria, isso pode encontrar o nível de dificuldade apropriado para eles em 3-4 perguntas.

O Problema: Como você pode imaginar, a partir do teste existente, terminando apenas após três respostas erradas e usando 60 perguntas para escolher entre 12 níveis, queremos permitir que os alunos digam respostas corretas (o que devem fazer 25% do tempo) ou acidentalmente dando respostas incorretas (dedos gordos, pergunta incorreta etc). Isso é ainda mais importante com uma pesquisa binária, porque encontrar a resposta certa na primeira pergunta pode colocá-lo na metade superior dos níveis de dificuldade, mesmo se você errar todas as outras perguntas.

Então, existe um algoritmo reconhecido para uma pesquisa binária em que você não pode garantir que um teste individual seja preciso?

Ingenuamente, eu poderia tentar a melhor de 3 ou 5 perguntas em cada etapa e, como as perguntas iniciais têm um efeito maior no resultado final do que as perguntas posteriores, talvez adicione essas perguntas adicionais apenas nas etapas iniciais e não nas posteriores. Existe mais do que isso?


fonte
Por que pré-testar? Apenas auto-ajuste as perguntas no teste real
Scott Stensland
@ScottStensland, pensamento interessante. No entanto, o programa atual é de 12 'mapas' de 10 'lições', cada uma delas consistindo em 8 a 15 'atividades' em tela HTML5 ou jogos de design altamente variável. Os alunos progridem nos mapas e recebem recompensas e prêmios / certificados após cada lição e mapa. Se estivéssemos constantemente ajustando o nível deles após cada jogo, seria muito desorientador, e precisaríamos criar feedback em todos os jogos existentes e descobrir as regras de feedback para cada jogo também.
@ Kirill, existe uma maneira fácil de mover / cruzar uma pergunta para outra seção?
@jim Você pode sinalizá-lo para que o moderador solicite que eles movam a pergunta, ou você também pode excluir essa pergunta aqui e criar uma nova pergunta idêntica por lá. A colocação cruzada (com perguntas idênticas em sites diferentes ao mesmo tempo) geralmente é desencorajada. Fiz essa sugestão porque me parece uma pergunta de estatística / aprendizado de máquina relativamente simples que obteria uma resposta clara muito mais rápida por lá.
quer

Respostas:

2

Trate o problema como uma matriz de probabilidades bayesianas; inicialmente, suponha que exista uma chance de 1/13 de que a criança esteja logo abaixo de cada nível e, para ser completo, uma chance de 1/13 de estar fora do topo. Então: 1) Encontre o nível mediano da sua matriz, ou seja, o nível em que a probabilidade de estar acima dela é mais próxima de 50% 2) Faça uma pergunta à criança a partir desse nível. 3) Use a regra de Bayes para atualizar a probabilidade de cada célula, assumindo uma taxa de erro de 25%. Encerre e retorne o nível mais provável quando uma célula atingir uma probabilidade suficientemente alta, ou eu acho que quando você ficar sem perguntas em um nível.

Um tratamento mais rigoroso desse algoritmo está aqui ; Eu recomendo lê-lo antes de implementar.

Timothy Nodine
fonte