Алгоритм вычисления следующего лучшего вопроса в опросе - PullRequest
0 голосов
/ 25 мая 2020

Я хочу создать опрос, который работает, выбирая следующий вопрос на основе ответов на предыдущие вопросы. Есть ли какие-то конкретные алгоритмы c, которые могли бы мне помочь в этом? Все, с чем я могу работать, будет полезно.

Спасибо :)

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете смоделировать то, что вы в настоящее время знаете об обследуемом, как вектор чисел. Каждый ответ, который вы соберете, будет обновлять этот вектор, и каждый вопрос будет иметь вектор весов, который переводит вектор обследуемого в одно число, показывающее, насколько хорошо задать следующий вопрос. Затем вы просто выбираете вопрос из оставшихся вопросов, который имеет наибольшую ценность. Ответ снова обновит вектор обследуемого, и весь процесс повторится. Вы также можете включить постоянный член для каждого вопроса, что сделало бы некоторые вопросы предпочтительнее других независимо от ответов.

Простейшим случаем было бы просто использовать одно число в качестве вектора обследуемого и векторов весов. Самый сложный случай - иметь векторы той же длины, что и количество возможных ответов. Вы также можете найти хорошую золотую середину.

Концептуально вы можете думать о каждом значении в ваших векторах как о конкретном «измерении» знаний об обследуемом. Например, если цель вашего опроса состоит в том, чтобы узнать факты об обследуемом по пяти различным параметрам, как, например, личностный тест «Большой пятерки», у вас может быть пять значений, отражающих, насколько хорошо вы уже знаете конкретное из пяти лакомств. Ответ, который сделает вас более уверенным в признаке «Открытость», снизит соответствующее значение и, по сути, сделает менее вероятным появление другого вопроса об этой характеристике. адаптировать это к различным вариантам использования. Его также должно быть просто реализовать, поскольку на многих языках есть библиотеки для хранения векторов и выполнения на них скалярного умножения.

...