Прогноз классификации с ML для продольных данных - PullRequest
1 голос
/ 18 марта 2020

У меня есть проект, над которым я работаю, я не могу привести реальный пример, поэтому я буду использовать пример прокси.

У нас есть данные о количестве учеников за несколько месяцев.

Для каждого наблюдения (студент и месяц) мы записали ряд переменных, например, часы, потраченные на обучение, IQ, доход семьи и т. Д. c. и фиктивная переменная, которая является истинной, если студент сдал свой тест в этом месяце, и ложной, если они этого не сделали.

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

например, в течение следующих 6 месяцев мы должны знать в каждом конкретном месяце, какова вероятность того, что какой-либо данный студент сдаст свой тест.

Мое первоначальное исследование предполагает, что LSTM может будь лучшим подходом. Я надеюсь использовать Python, кто-нибудь может указать мне направление некоторых первых шагов или указаний?

другие замечания, которые нужно отметить:

  • студенты могут начать обучение в любом время
  • пройдя тест, студент больше не будет записываться

1 Ответ

2 голосов
/ 18 марта 2020

Это очень широкий вопрос. Вот мой анализ этого.

Постановка задачи

Задача контролируемой классификации - это вопрос 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 .

Надежда, которая помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...