LSTM序列分类的输入过程和形状?

时间:2019-10-28 08:49:02

标签: keras binary classification sequence lstm

我正在尝试根据来自该数据集https://analyse.kmi.open.ac.uk/open_dataset的活动数据对学生成绩进行二进制序列分类。

I've combined and cleaned the data into this dataframe.

29000多名学生中的每一个都有;

  • 唯一ID [combined_id]
  • 周数(周的范围是-3到39)[周]
  • 他们每周[sum_click_week]在在线虚拟学习环境中获得的点击次数
  • 他们的最终结果为0(通过)或1(撤回)[final_result]

首先,我对如何拆分为x和y值感到困惑,因为我仍然应该根据学生ID对其进行匹配,因此,例如y数据帧将是final_result,week和Combined_id(因此可以对每个值进行预测周),而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列,如果使用ID和周号,则为2/3。

所以我的模型应该是这样的

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()

非常感谢

0 个答案:

没有答案