2014-01-17 77 views
0

峰/阈值:查找数据/阴谋使用Python

enter image description here

示例数据可能是这样的:

339 
305 
276 
248 
263 
424 
451 
438 
410 
399 
399 
398 
. 
. 
. 

什么我试图做的是得到所有高峰的索引。请注意,我只想要最高峰。我目前正在做的是使用高斯平滑对数据进行平滑处理,以去除半峰和谷以获得平滑的曲线并找到这些最大值的指数。它的工作原理,但它不是一个很干净的解决方案。

我想知道是否有更好的方式使用kmeans等聚类方法来完成此操作?有人能指点我一个解决方案吗?

+1

为什么这不是一个干净的解决方案?你发布的数据代表什么?我认为这是y值,但不明确。 – kkuilla

+0

这是一个周期性信号。如果您可以安全地假定维持这种周期性,则可以在特定时间窗口内查找最大值。 –

+0

数据是心脏的交织间隔,所以是的,从某种意义上说,它是y值。至于周期性,是的,数据是周期性的,但可能会有所不同,因此我不能只选择一个窗口。至于为什么它不是太干净,我正在改变我回来的数据。如果我能处理原始数据,我更喜欢它。 – intl

回答

1

事实上,使用高斯平滑可能意味着你正在做所谓的核密度估计

这是 - 特别是对于低维数据 - 被认为是良好的统计实践。您可能需要阅读KDE以了解如何选择内核带宽,但除此之外,请坚持这种已建立的方法。

k-means只有在有多个变量时才有用,因为它可以一次优化所有变量。但是你必须选择k,你可能事先不知道。

试着从的密度估计的角度来看,不要试图做一些太花哨的事情。

+0

谢谢,KDE看起来是要走的路。看起来最简单的是最好的方式。 – intl