tuning gru网络

inb24sb2  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(198)

我有一个从网上课程收集的数据集,有大约250个问题和200多名学生。数据集包含以下列

studentID, exerciseID, logindate, logoutdate, status, points

哪里 logindate, logoutdate 每一条记录都要注明入住和退房的日期和时间, status 参考进度,它在0%和100%之间变化,这意味着如果status=100,任务就解决了,然后他得到了一个 point . 我想根据以前的数据预测期末考试的结果。
学生可以随心所欲地做每一个练习,即使任务已经解决,但每次他访问同一个练习时,参数都是不同的。例如 ax + b = 0 只有这样 a 以及 b 在这个任务中都在变化,所以我有大约500000的记录,供所有的同学和练习。
我做了一些聚合,每周添加点,我尝试了不同的ml算法,通过应用pca,只将学生分为三到四组(非常好,很好,满意,失败)得到了最好的结果,但仍然令人满意的组太混乱(我无法预测组中的天气是否通过)
现在,我正在尝试执行一个类似的分类,部署一个gru nn,如下所示。我把练习作为时间步(250个时间步作为上一个练习的结果,与下一个练习相关),我还为每个学生x做了一些特征工程,练习b,我有

solved, solved_duration, trying, trying_duration, trying_sstatus, check, check_duration

哪里 solved, soved_duraiton 他做了多少次练习,花了多长时间。 trying, trying_duration, trying_sstatus 他试过多少次,花了多长时间 status 0<status <100 检查,检查\u持续时间他检查它多少次而不尝试解决它,即状态=0,然后数据的形式是:
(200250,7)200名学生(示例)250个练习(timestep)和7个特征。所以我实现了以下代码,

n_steps = data.ExerciseID_cat.nunique()

n_features = 8

# define model

model = Sequential()
model.add(GRU(256, activation='relu', return_sequences=True, input_shape=(n_steps, n_features)))
model.add(GRU(100, return_sequences=True,activation='relu'))
model.add(GRU(10, activation='relu'))
model.add(Dense(1, activation='softmax')) # sigmoid

model.compile(optimizer='adam', loss='categorical_crossentropy')  # mse
model.fit(X,y,epochs=1000, verbose=1, validation_split=0.2)

现在我的问题是:
你认为这种方法是否有效?

  • . 如果是的话,我如何调整我的代码以获得一个好的结果,就像现在我使用的分类交叉熵损失=0.0000e+00并且从不改变,

注:考试成绩为分类(1,2,3,4,5)

  • . 如果没有,

你认为这些数据足够输入神经网络吗?
你还有别的建议吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题