2014-01-17 76 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