Ввод обработки и формы для классификации последовательности LSTM? - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь сделать двоичную последовательность классификации класса учащегося на основе данных об активности из этого набора данных https://analyse.kmi.open.ac.uk/open_dataset.

Я объединил и очистил данные в этом фрейме данных.

Что есть для каждого из 29000+ учеников;

  • Уникальный идентификатор [комбинированный_идентификатор]
  • Номер недели (диапазон недель от -3 до 39) [неделя]
  • Количество сделанных кликовс виртуальной онлайновой учебной средой в неделю [sum_click_week]
  • Их окончательный результат, который равен 0 (Pass) или 1 (Withdrawn) [final_result]

Во-первых, я запутался в том, чтокак разделить значения x и y, как я должен сопоставлять их на основе идентификатора учащегося, например, для y данных будет: final_result, week и комбинированный_дек (таким образом, прогноз может быть сделан на каждой неделе), а для данных x - только исходныйфрейм данных с пропущенным столбцом final_result?

X = week_combi.drop(['final_result'], axis=1)
y = week_combi.drop(['sum_click_week'], axis=1)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)

Во-вторых, нужно ли конвертировать фрейм данных в фрейм данных для каждого учащегося, так как это облегчит чтение LSTM?

НасколькоФорма ввода LSTM, я предполагаю, что количество образцов / размер партии я бы определил как количество студентов, на которых я хочу его обучать. Временные шаги будут 43, что соответствует количеству недель на одного учащегося. Элементами будет 1, который будет столбцом sum_click_week, или будет два / три, если я использую идентификатор и номер недели.

Так что моя модель будет выглядеть примерно так:

amount_of_students = 1000
weeks = 43
features = 1 #sum click week? or two?
model = Sequential()

model.add(LSTM(64, input_shape=(amount_of_students, weeks, features))

model.compile(loss = 'binary_crossentropy', optimizer = 'adam')

model.add(Dense(1, activation = 'relu'))

model.summary()

Многиеспасибо

...