2011-03-22 39 views
0

我有几个数据集,即具有2列的矩阵,一个具有matlab日期编号,第二个具有双倍值。下面的例子将它们合并用于聚类/神经网络使用的传感器数据

>> S20_EavesN0x2DEAir(1:20,:) 
ans = 

    1.0e+05 * 

    7.345016409722222 0.000189375000000 
    7.345016618055555 0.000181875000000 
    7.345016833333333 0.000177500000000 
    7.345017041666667 0.000172500000000 
    7.345017256944445 0.000168750000000 
    7.345017465277778 0.000166875000000 
    7.345017680555555 0.000164375000000 
    7.345017888888889 0.000162500000000 
    7.345018104166667 0.000161250000000 
    7.345018312500001 0.000160625000000 
    7.345018527777778 0.000158750000000 
    7.345018736111110 0.000160000000000 
    7.345018951388888 0.000159375000000 
    7.345019159722222 0.000159375000000 
    7.345019375000000 0.000160625000000 
    7.345019583333333 0.000161875000000 
    7.345019798611111 0.000162500000000 
    7.345020006944444 0.000161875000000 
    7.345020222222222 0.000160625000000 
    7.345020430555556 0.000160000000000 

之一,现在,我有这些不同的传感器的值,我需要让它们连成一个矩阵,这样我就可以进行聚类,神经网络等,唯一的问题就是说,传感器数据的采集时间和时间标记略有不同,从数据收集的角度来看,我无能为力。 我的第一个想法是插值使一个传感器数据集适合另一个,但这似乎是一个混乱的方法,我想也许我错过了一些东西,一个工具箱或函数,使我能够更快地做到这一点,而不需要我摆弄。更复杂的是,传感器的数量随着时间的推移而增加,因此我也在寻找不同的开始日期。

有人如何去做这件事的好主意?谢谢

回答

0

很难给出聚类部分的答案,因为我不知道你在数据中寻找什么。

对于该神经网络,内插的旁边还有一些想到其他的至少两种方法:

  • 训练单独的网络为每个矩阵
  • 喂养它们放在一起到同一网络,具有一个标志指定数据来自哪个矩阵,例如:input(timestamp,flag_m1,flag_m2,...,flag_mN)=> target(value)其中flag_m *列是互斥的布尔值 - 即flag_mK为1 iff行来自矩阵K,否则为0。

这些是我可以安全地用你提供的信息量说的唯一的东西。

+0

嗨,谢谢你的回答。编辑:我想要实现的是将所有传感器的数据放在一个矩阵中,并且有一个共同的时间戳,这听起来像使用插值。我目前还没有使用神经网络,但是我打算在此之前和之前想要以适当的形式提供我的数据,我不仅可以使用神经网络,而且可以使用任何形式的功能这种排序即前行或列的数据和每个列或行作为示例 – aXon 2011-03-22 10:36:05

+0

我不认为有一种方法可以让matlab在将数据提供给网络时自动插入数据,更不用说应付数据集的时间范围不是恒定的(即外推)。上面概述的两种方法是如果我要解决这样一个问题,我会使用的方法。例如,如上所述创建网络后,您可以使用它进行插值和外插,并获取所有数据集的同步样本。 – CAFxX 2011-03-22 12:18:00

+0

谢谢你关于神经网络和方法的想法。我已经使用了另一种解决方案,并根据我有的最大数量的样本插入数据。这当然会影响样本量较小的数据,例如229 vs 154616,只是把它炸掉了,但这至少对我来说是使数据与神经网络一致以及我想要使用的其他功能最简单的方法。聚类等。 – aXon 2011-03-23 11:11:46