我有几个时间序列特征(心电图,HRV和呼吸)和独立的特征从这些时间序列(例如SDNN,RMSSD,.)。
我跟着弗朗索瓦·乔莱特的名字。对于三维时序输入张量,它们使用样本、时间步长、特性。
时间序列每个时间步骤有15000个值(样本) [15000x1,15000x1,.]虽然单独的特性每个timestep.Those有一个值(样本),但长度为1的额外特性对于每个时间步骤是不同的。[0.3,0.3,0.34,.]。
ECG, HRV, F1, F2, ...
-------------------------------------------------------------
Sequence 1 |
Step 1 | [[15000x1],[1000x1],[1x1],[1x1],...]
Step 2 | [[15000x1],[1000x1],[1x1],[1x1],...]
Step 3 | [[15000x1],[1000x1],[1x1],[1x1],...]
Sequence 2 |
Step 1 | [[15000x1],[1000x1],[1x1],[1x1],...]
Step 2 | [[15000x1],[1000x1],[1x1],[1x1],...]
Step 3 | [[15000x1],[1000x1],[1x1],[1x1],...] 如何最好地使用Keras学习所有这些输入?
额外的问题。由于“虚假”附加信息,零填充是如何影响学习者的?特别是对于1到15000部分的分离功能,从上面。另一个例子:由于采样频率不同,HRV和呼吸信号比心电图短。在这里,我使用的是插值,而不是零填充。你会同意吗,还是零填充不会影响学习者?
谢谢
发布于 2018-03-08 15:08:37
假设1
由于模棱两可,我假设这一点(如果不是,请评论,我会改变它)
附加问题:
是!插值频率较低的特征,并做出如下输入张量:
(numberOfSequences_maybePatient, 15000 steps, features_ECG_HRV_etc)当上的特性发生时,需要保持它们之间的相关性,这是通过同步这些步骤来实现的。
零填充会影响结果吗?
是的,它会的,除非你使用“掩蔽”(一个掩蔽层)。但这仅适用于处理不同长度的样本(不同序列或患者),而不适用于不同长度/样本率的特征。
例如,在零填充和掩蔽的情况下,下面的情况会很好:
如何处理separate feature**?**
有几种可能的方法。最简单的方法之一,也可能非常有效,就是用所有的15000步使它成为一个恒定的序列。这种方法不需要考虑特性如何与数据的其余部分相关联,而是将任务留给模型。
假设第一个序列的独立特征值为2,第二个序列的特征值为4,则创建此数据数组:
ECG, HRV, separate
--------------------------------------------------------
| [
sequence 1: | [
step 1 | [ecg1, hrv1, 2],
step 2 | [ecg2, hrv2, 2],
step 3 | [ecg3, hrv3, 2]
| ]
|
sequence 2: | [
step 1 | [ecg4, hrv4, 4],
step 2 | [ecg5, hrv5, 4],
step 3 | [ecg6, hrv6, 4]
| ]
| ]您还可以将输入作为模型中的附加输入:
regularSequences = Input((15000,features))
separateFeature = Input((1,)) #assuming 1 value per sequence 然后你决定是否要在某个地方求和,在某个地方把它相乘等等。如果你知道这个特性意味着什么,以及它与其他数据的关系如何来选择最佳的操作和位置,这种方法可能会比另一种方法更有效。
假设2
请从您最新的答复中获得以下描述:
ECG, HRV, F1, F2, ...
-------------------------------------------------------------
Sequence 1 |
Step 1 | [[15000x1],[1000x1],[1x1],[1x1],...]
Step 2 | [[15000x1],[1000x1],[1x1],[1x1],...]
Step 3 | [[15000x1],[1000x1],[1x1],[1x1],...]
Sequence 2 |
Step 1 | [[15000x1],[1000x1],[1x1],[1x1],...]
Step 2 | [[15000x1],[1000x1],[1x1],[1x1],...]
Step 3 | [[15000x1],[1000x1],[1x1],[1x1],...] 然后:
好吧,组织这些数据很容易(但请注意我上面问的问题),只需在每一时间步骤中将所有特性打包在一起:
输入数据的形状为:(sequences, steps, 16002)
ECG, HRV, F1, F2, ...
-------------------------------------------------------------
[
Sequence 1 | [
Step 1 | [ecg1,ecg2,...,ecg15000,hrv1,hrv2,...hrv1000,F1,F2,...]
Step 2 | [ecg1,ecg2,...,ecg15000,hrv1,hrv2,...hrv1000,F1,F2,...]
Step 3 | [ecg1,ecg2,...,ecg15000,hrv1,hrv2,...hrv1000,F1,F2,...]
]
Sequence 2 | [
Step 1 | [ecg1,ecg2,...,ecg15000,hrv1,hrv2,...hrv1000,F1,F2,...]
Step 2 | [ecg1,ecg2,...,ecg15000,hrv1,hrv2,...hrv1000,F1,F2,...]
Step 3 | [ecg1,ecg2,...,ecg15000,hrv1,hrv2,...hrv1000,F1,F2,...]
]https://stackoverflow.com/questions/49175278
复制相似问题