Это очень широкий вопрос. Вот мой анализ этого.
Постановка задачи
Задача контролируемой классификации - это вопрос X
s и y
. В вашем случае, если я хорошо понимаю, вот пример X
и y
:
X
содержит все доступные данные c и последовательные данные для данного пользователя:
X = [iq, income, time_spent_m-2, time_spent_m-1, time_spent_m]
- static - -------------------- sequential -------------
/! \ Разные пользователи будут иметь разные исторические данные. Имейте в виду, что вам придется выбрать один фиксированный размер вектора (скажем, M = 15), который вы хотите использовать в любом случае, и попрактикуйтесь в padding .
y
- это вероятность распределение в течение следующих 6 месяцев, пытаясь выяснить, когда студент сдает тест:
y = [0.1, 0.1, 0.4, 0.2, 0.1, 0.1] # should sum to 1?
-> X
имеет различный размер, в то время как y
имеет фиксированный размер.
Данные обучения
Вы можете использовать всех пользователей, которые прошли и не сдали тест, в качестве обучающих данных. И это в переводе за каждый месяц. Если вы обычно собираете данные от пользователей в течение более шести месяцев, то, как правило, будет y
s, которые, таким образом, [0, 0, 0, 0, 0, 0], что означает ваш последний уровень не может суммироваться до одного , как я предполагал ранее. Осторожно, данные обучения могут быть немного несбалансированными (много нулей, очень мало).
Модель
LSTM действительно является моделью, подходящей для отношений последовательность-последовательность. В Интернете есть множество учебных пособий, с которых можно начать в соответствии с выбранной вами структурой. Известные платформы для глубокого обучения в Python: Keras (поверх TensorFlow ) и PyTorch .
Надежда, которая помогает.