分形維度特征——基于Python實現(xiàn)

理論介紹:Higuchi Algorithm:

Step1:子采樣

對長度為N的序列,以間隔K進行采樣,起始點m=(1, 2, ..., K);
X_k^m:X(m),X(m+k),...,X(m+[\frac{N-m}{k}] \cdot k) m=(1, 2,...,k)

Step2:計算L_m(k)

L_m(k)=\frac{1}{k}\cdot{\frac{(\sum_{i=1}^{\lfloor\frac{N-m}{k}\rfloor})|X(m+ik)-X(m+(i-1)k|)(N-1)}{\lfloor\frac{N-m}{k}\rfloor k}]}

Step3:求均值

\langle L(k) \rangle=\frac{1}{k} \sum_{m=1}^kL_m(k)
我們知道,
\langle L(k) \rangle \propto k^{-FD} \Rightarrow FD=-\lim_{k \rightarrow \infty}\frac{\log\langle L(k) \rangle}{\log k}

代碼實現(xiàn)

# In[1]: Load some data
import _pickle as cPickle
x = cPickle.load(open('data_preprocessed_python/s01.dat', 'rb'),encoding='bytes')
arr_x = x[b'data'][0,0]

# In[2]: Constant
import numpy as np
N = arr_x.shape[0]
K = 8063

# Subsequence
from math import floor, log
L = []
for m in range(K):
    sub = arr_x[m : N : K]
    Length = sub.shape[0]
    temp_sum = 0
    for i in range(1, Length):
        temp_sum += abs(sub[i] - sub[i-1])
    temp_sum = temp_sum * (N-1) / (Length * K * K)
    L.append(temp_sum)

存疑:有關(guān)K的取值問題,根據(jù)公式,希望K越大越好,但是現(xiàn)實中的序列數(shù)據(jù)都有一個固定的長度N,那么K是取N-1嗎,或者是說,作為一個輸入的特征,只要對每一個樣本選擇使用相同的K,就可以達到提取特征的效果了?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 文章作者:Tyan博客:noahsnail.com | CSDN | 簡書 聲明:作者翻譯論文僅為學(xué)習(xí),如有侵權(quán)請...
    SnailTyan閱讀 5,489評論 0 8
  • #1996 AHSME ##1996 AHSME Problems/Problem 1 The addition ...
    abigtreenj閱讀 1,609評論 0 0
  • 算法和數(shù)據(jù)結(jié)構(gòu) [TOC] 算法 函數(shù)的增長 漸近記號 用來描述算法漸近運行時間的記號,根據(jù)定義域為自然數(shù)集$N=...
    wxainn閱讀 1,249評論 0 0
  • 文章作者:Tyan博客:noahsnail.com[http://noahsnail.com] | CSDN[...
    SnailTyan閱讀 2,812評論 0 4
  • 標(biāo)簽: PRML; 核函數(shù) 備注:文中可能存在錯誤,敬請指正。 聲明:本文主要整理思路,原創(chuàng)參考資料列在文末,在...
    zjdxwsn閱讀 859評論 0 0

友情鏈接更多精彩內(nèi)容