2015-02-09 15 views
3

我有96個序列的48個浮點數。有三個不同的分組(未知大小)。最初,我不知道哪個序列屬於哪個組。我的目標是創建一個算法來找到它。這最好以圖示出(見下文 - 上的灰度級表示的浮標的大小):應該使用什麼相似性度量來對這些序列進行分類?

enter image description here

我的目標是從所述未分類的圖像去左邊到右邊的圖像。

我的想法是對序列進行某種形式的分析並對最接近的匹配進行分組。分析可能是:

  • A.尋找峯
  • B.某種形式 頻率/位置和波谷其他域分析

我能想象如何做選擇。然而我對選項B粗略一下,我確信我不知道幾種方法。

我的問題是高級別:

  1. 誰能推薦的,我可以用它來做到這一點的算法類別?

  2. 任何人都可以推薦一個程序或開始這樣的算法(書章建議歡迎)?

我也很樂意與書籍章節等我通常使用與NumPy/SciPy的建議 - 因此標籤,但這個問題是不是真的特定的語言。

+0

我不明白什麼定義了序列之間的距離(相似性度量?)。不過,這似乎屬於「分類」類問題。 – 2015-02-09 14:01:48

+0

@RafałDowgird - 這是改寫問題的好方法,「可以用什麼相似性度量來對這些序列進行分類?」看起來3組中的高峯和低谷排列不同 - 因此這些位置可能是相似性指標。但我有一種感覺,可能有更好的方法(因此是問題)。 – atomh33ls 2015-02-09 14:14:01

回答

1

看起來像峯和谷是完全對齊,只有深度不同。我想嘗試:

  • 線性序列正常化,使他們既平均值和方差一致,即兩個[1,0,1,0]和[5,-5,5,-5]歸一化爲[1,-1,1,-1]。

  • 然後計算序列上差異的平方和並將其視爲距離。

顯然它只是一個起點。這可能不會開箱即用,因此請查看錯誤分類以檢查導致它們的原因以及如何解決此問題。

1

只是一個想法(沒有時間來寫一個完整的答案):

  1. 如同一個組內成員主要由一些比例不同,所以首先做一些「正常化」的,正如Rafal所建議的那樣。

  2. 歸一化後,組內的所有成員將是N維空間中大致指向相同方向的矢量。然後您可以將它們分成組,使用clustering algorithm,例如使用kmeans函數。

相關問題