我正在做一个睡眠数据科学实验,我需要一个为每个输入输出多列睡眠质量测量值(十进制数)的模型。
为了进行训练,我使用智能手机(用于输入数据)和智能手表(用于标签或输出数据)收集数据。智能手机在一夜之间收集多行传感器数据,如加速计和陀螺仪。智能手表生成单行睡眠质量指标值(如TWAK、NWAK、WASO等)就一个晚上。数据结构如下:

上面是我的数据的表示。左侧是电话功能数据(每天的记录数不确定,具体取决于此人当天的睡眠时间),右侧是睡眠质量测量数据,每天只有一个值。我需要用这些数据训练一个模型,在线来源似乎表明LSTM是可行的。你能给我一个建议,或者告诉我一个资源,可以帮助我使用python对这种类型的数据集结构进行预测吗?最好使用Tensorflow。
提前谢谢你!我可以解释它,无论你需要多少次,所以请随时问我任何问题。
发布于 2020-11-21 13:42:30
据我所知,你有传感器(X),每个样本有K个维度,每天包含L行样本。数字L可以每天变化,这取决于一个人每天的睡眠时间。
我认为你可以训练一个sequence-to-sequence (seq2seq) with LSTM-based模型(带有输入X)来编码和解码它自己。因此,这种seq2seq模型可以获得不同的序列长度,但生成相同的编码特征的维度。这一步的损失函数可以是L2或重构输出和输入之间的均值绝对值。
然后,编码的特征可以用于通过另一个简单的LSTM模型或全连接层对单个输出(即,睡眠质量)进行预测。这个回归任务的损失函数可以是L2,也可以是均值-绝对值。
通常,您可以通过使用seq2seq (即一种形式的自动编码器)来了解传感器数据的表示形式(具有不同的序列长度),然后使用压缩表示形式(来自编码器)来预测单个输出(即睡眠质量)。
然而,这种方法可能是有损的,因为压缩表示不能捕获与原始数据完全顺序的关系,并且它将用作回归任务的输入。
一种改进的方法可以是,不是只选择编码器的最后隐藏状态作为表示,而是可以选择一定数量的最后隐藏状态(例如,几天内最小数量的L)作为编码表示。但我还没有见过任何这样做的论文。
https://stackoverflow.com/questions/64938206
复制相似问题