首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras的输入组合:时间序列和特性

Keras的输入组合:时间序列和特性
EN

Stack Overflow用户
提问于 2018-03-08 14:16:52
回答 1查看 162关注 0票数 0

我有几个时间序列特征(心电图,HRV和呼吸)和独立的特征从这些时间序列(例如SDNN,RMSSD,.)。

我跟着弗朗索瓦·乔莱特的名字。对于三维时序输入张量,它们使用样本、时间步长、特性。

时间序列每个时间步骤有15000个值(样本) [15000x1,15000x1,.]虽然单独的特性每个timestep.Those有一个值(样本),但长度为1的额外特性对于每个时间步骤是不同的。[0.3,0.3,0.34,.]。

代码语言:javascript
复制
                     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. 只需将1到15000的独立特性加到时间序列中就可以了。
  2. 使用单独的特性(重复使用一个值)
  3. 当数据在0到1之间规范化时,使用超出该范围的额外功能的值方式来填充。例如1000
  4. 只将时间序列作为三维张量输入,将独立的特征作为附加输入(作为额外的层)合并到学习者(多输入)中。

额外的问题。由于“虚假”附加信息,零填充是如何影响学习者的?特别是对于1到15000部分的分离功能,从上面。另一个例子:由于采样频率不同,HRV和呼吸信号比心电图短。在这里,我使用的是插值,而不是零填充。你会同意吗,还是零填充不会影响学习者?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-08 15:08:37

假设1

由于模棱两可,我假设这一点(如果不是,请评论,我会改变它)

  • 我打电话给心电图,心率变异性,等等。功能每步都有变化。
  • 频率最高的功能有15000步,而其他功能有较少的步骤。
  • 您有一个单独的特性,它不是连续的,也没有步骤。(在这个答案中,我将称之为单独的特性)

附加问题:

是!插值频率较低的特征,并做出如下输入张量:

  • (numberOfSequences_maybePatient, 15000 steps, features_ECG_HRV_etc)

上的特性发生时,需要保持它们之间的相关性,这是通过同步这些步骤来实现的。

零填充会影响结果吗?

是的,它会的,除非你使用“掩蔽”(一个掩蔽层)。但这仅适用于处理不同长度的样本(不同序列或患者),而不适用于不同长度/样本率的特征。

例如,在零填充和掩蔽的情况下,下面的情况会很好:

  • 序列1:长度100 (包括心电图、心率变异性等)
  • 序列2:长度200 (包括心电图、心率变异性等)

如何处理separate feature**?**

有几种可能的方法。最简单的方法之一,也可能非常有效,就是用所有的15000步使它成为一个恒定的序列。这种方法不需要考虑特性如何与数据的其余部分相关联,而是将任务留给模型。

假设第一个序列的独立特征值为2,第二个序列的特征值为4,则创建此数据数组:

代码语言:javascript
复制
                          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]
             |      ]
             |   ]

您还可以将输入作为模型中的附加输入:

代码语言:javascript
复制
regularSequences = Input((15000,features))
separateFeature = Input((1,)) #assuming 1 value per sequence    

然后你决定是否要在某个地方求和,在某个地方把它相乘等等。如果你知道这个特性意味着什么,以及它与其他数据的关系如何来选择最佳的操作和位置,这种方法可能会比另一种方法更有效。

假设2

请从您最新的答复中获得以下描述:

代码语言:javascript
复制
                     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],...] 

然后:

  • 在心电图中,一个时间步骤就有15000个特征。(你确定这不是15000步的顺序吗?)
  • 在HRV中,单个时间步骤有1000个特性。(您确定这不是1000步的序列吗?)
  • 每个时间步骤都有其他几个单独的特性。

好吧,组织这些数据很容易(但请注意我上面问的问题),只需在每一时间步骤中将所有特性打包在一起:

输入数据的形状为:(sequences, steps, 16002)

代码语言:javascript
复制
                     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,...]
                ]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49175278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档