Как можно реализовать задачу с помощью нейронных сетей?
Есть программа для тестирование учащихся.
Тесты генерируются на основе анкеты из базы.
Анкета определяет тематику материала, тест ее уровень.
По этим тестам определяем уровень\базу учащегося и подготавливаем ему индивидуальный план, некоторые части индивидульного плана учащийся может менять.
Учебный материал и тесты постоянно пополняется, тесты разные: один вариант ответа, два, в некоторых тестах нужно ввести ответ (предложение или слово).
Результат теста - массив:
[4, 'm', 'acfez', [1, 4, 5, 8], 16, ...]
один тест - один элемент массива.
Индивидуальный план составляется в основном так:
если есть элемент в таком то диапазоне, а другой элемент содержит ключ\слова или лист содержит такие то числа-> то в план добавляется такой то материал\лекции\...
Инд. план тоже представляется массивом
[1, 2, 'мат.ан.2-2-6', 'тмо-1-1', ...]
в основном индивидуальные планы повторяются 10 - 15, хотя результаты тестов бывают разные.
Вопрос
С пополнением базы, увеличивается и количество if'ов.
НС кажется может упростить задачу, пока в этом не силен.
Можно ли сделать так чтобы НС на основе результатов теста подбирала один из заготовленных инд. планов обучения? В каком направлении идти? Что посоветуете?
Сначала нужно определить список предметов, список тем и сопоставить их со списком предметов. Для каждой темы определить ее сложность (по какой либо шкале). Для каждого вопроса нужно определить его сложность (вес), тему и предмет.
Таким образом имея данную информацию можно на основе правильных ответов по всем вопросам данного ученика определить, какие темы он знает хорошо, какие не очень или не знает. Тут элементарно можно определять вес тех вопросов, что он ответил правильно по отношению к весу всех вопросов в теме\предмете. Получится чтото вроде "знает на 42% мат.анализ, на 89% правильно ответил в теме "как убиться об стену после 42% матана""
Нейронная сеть тут можно и не использовать. Выбирать вопросы можно просто по принципу "выбирать те, темы, что имеют меньший вес решенных". Тут еще желательно настроить зависимости, к примеру данная конкретная тема зависит от знания такой и такой темы, и при выборе вопросов нужно учитывать это и выбирать первыми те, что не имеют зависимостей или их зависимые темы\вопросы уже решены. Если уже совсем хорошо делать можно еще к каждому вопросу привязывать "тэги", это например определения, формулы и тп. и соответственно по тегам решенных можно будет сказать что вот этот еще не решенный вопрос он вероятно решит, потому как тэги в нем теже, что были в том вопросе что он уже решил.
в том массиве результат не одного теста, а нескольких тестов, то есть один элемент один тест.
теги. уровень сложности, "веса", все это есть.
я почти все это так и проверяю для подбора инд плана с помощью if'ов.
"сверху" требую НС.
Как я понял НС можно обучить что при таких или таких результатах - такой то курс.
Подскажите материал по этой теме, или направление что искать?
Олжас Сулеймен: нейронные сети не "прилепляют", их либо используют когда могут получить результат или не используют если с нее толку будет мало, в данной задаче результат легко вычислить путем простого перебора с конечным числом элементов, НС в этой задаче не даст эффекта лучше чем перебор.
Еще по части НС, их обучают парам входных и выходных данных, если в качестве входных тут очевидно что использовать, то в качестве выходных совсем не так очевидно как должно.
Виталий Пухов: как то сделал используя ffnet: просмотрел последние выбранные курсы, различались десяток ид планов, подогнал все остальные планы к этим 10,
взял все результаты и эти планы, обучил сеть. и чтоб в дальнейшем не подбирать планы, сделал так: после того как, как учащийся поправляет план, заносим все в статистику, и если какой то элемент курса доходит до критической точки добавляем или удаляем его из плана.