Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调整GRU网络_Python_Keras_Neural Network_Recurrent Neural Network - Fatal编程技术网

Python 调整GRU网络

Python 调整GRU网络,python,keras,neural-network,recurrent-neural-network,Python,Keras,Neural Network,Recurrent Neural Network,我有一个从在线课程中收集的数据集,有大约250个问题和200多名学生。 数据集包含以下列 studentID, exerciseID, logindate, logoutdate, status, points 其中,logindate,logoutdate指的是每个记录签入和签出的日期和时间,状态指的是进度,它在0%和100%之间变化,这意味着如果状态=100,任务就解决了,然后他得到一个点。 我想根据以前的数据预测期末考试的结果 学生可以随心所欲地做每个练习,即使任务已经解决,每次他访问同

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

studentID, exerciseID, logindate, logoutdate, status, points
其中,
logindate,logoutdate
指的是每个记录签入和签出的日期和时间,
状态
指的是进度,它在0%和100%之间变化,这意味着如果状态=100,任务就解决了,然后他得到一个
。 我想根据以前的数据预测期末考试的结果

学生可以随心所欲地做每个练习,即使任务已经解决,每次他访问同一练习时,参数都是不同的。例如,
ax+b=0
那么在这个任务中只有
a
b
在变化,所以我有大约500000条记录,供所有学生和练习使用

我做了一些聚合,每周添加点,我尝试了不同的ML算法,通过应用PCA,只将学生分为三到四组(非常好,很好,令人满意,失败),得到了最好的结果,但仍然令人满意的组太混乱(我无法预测组中的天气是否通过)

现在,我正在尝试部署GRU NN进行类似的分类,如下所示。 我将这些练习视为时间步(250个时间步,作为上一个练习与下一个练习的结果),并且我做了一些特性工程,如下所示 对于每个学生x和练习b,我有

 solved, solved_duration, trying, trying_duration, trying_sstatus, check, check_duration
在解决问题的地方,soved_duraiton解决了多少次练习以及需要多长时间。
trying,trying\u duration,trying\u sstatus
他尝试解决它的次数,花费的时间和状态的总和0您的最后一层有一个输出,但如果您使用softmax,则需要5个输出,结果有5个输出,总和为1。然后,这5个输出大致用作每个类别的预测强度。分类/二元交叉熵损失期望预测和基本事实以向量形式出现,每个条目一个class@DerekG感谢您关于激活功能的说明。你能给我提供更多关于预测和真值作为向量的细节或例子吗?那么,假设你有
X[i]
y[i]
,其中
y[i]
=5。将该标签输入CCE的正确方法是
[0,0,0,0,1]
。然后假设你的模型预测
[1.01,3.04,2.65,2.45,7.65]
(只是一个任意的例子)。在softmax激活后,这将成为
[0.05,0.2,0.15,0.15,0.45]
或类似内容(总和为1)。你把这个向量和基本真值向量传递给你的损失函数,它本质上只是计算每个可能类的二进制交叉熵损失。因此,您的模型不仅可以预测正确类别的高置信度,还可以预测所有其他类别的低置信度。谢谢@DerekG
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)