微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在流数据上计算TSS

如何解决在流数据上计算TSS

TSS的计算方式为MDToolbar,可以很容易地计算出是否容易获得所有数据。但就我而言,数据一直在不断流传输,因此我需要计算此数据上的移动TSS。例如,假设整个数据为(x - mean) **2 。但是这些数据是成批流的,就像这样:

x=np.array([1,2,3,4,5,6,7,8,9,10])

在这种情况下如何计算移动TSS?任何合乎逻辑的解释以及解决方案将受到高度赞赏

解决方法

TSS可以分为两个术语,每个术语都可以轻松地递增计算:

TSS = sum [(X-sum [X] / N) 2 ]

= sum [X 2 -2X * sum [X] / N + sum [X] 2 / N 2 ] >

= sum [X 2 ]-2sum [X] 2 / N + sum [X] 2 / N

= sum [X 2 ]-sum [X] 2 / N

您只需要维护X和X 2 的运行总计,以及到目前为止您已经看到的样本数N。

,

您可以在每个步骤中将每个批次添加到累积数组中:

cum_array = numpy.concatenate((cum_array,batch))

然后将TSS计算为:

tss = (cum_array - numpy.mean(cum_array))**2

每次都会重写TSS数组。如果您只是想添加新计算的值,则需要类似以下内容的

cum_array = numpy.concatenate((cum_array,batch))
tss = numpy.concatenate((tss,numpy.zeros_like(batch)))
tss[-batch_len:] = (cum_array[-batch_len:] - numpy.mean(cum_array))**2

编辑:如果您只想在每批末尾输入TSS值,则可以执行以下操作:

running_total += numpy.sum(batch)
N += len(batch)
tss = (batch[-1] - running_total/N)**2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。