時間序列轉(zhuǎn)圖像:相對位置矩陣(Relative Position Matrix)(附matlab代碼)

時間序列分類(TSC)在時間序列數(shù)據(jù)挖掘任務中備受關注,已經(jīng)應用到各個領域。隨著卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network, CNN)的迅速發(fā)展,基于卷積神經(jīng)網(wǎng)絡的TSC方法直到最近才開始出現(xiàn)。因此,提出了一個新的深度學習框架,使用相對位置矩陣(Relative Position Matrix,RPM)和卷積神經(jīng)網(wǎng)絡(CNN)來完成TSC任務。我們研究了一種稱為相對位置矩陣的時間序列數(shù)據(jù)表示方法將原始時間序列數(shù)據(jù)轉(zhuǎn)換為二維圖像,從而可以使用圖像識別技術。這些圖像顯示了原始時間序列數(shù)據(jù)的一些有用信息。此外,原始時間序列數(shù)據(jù)中嵌入的模式和特征被包含在轉(zhuǎn)換后的圖像中。從RPM生成的圖像中,很容易直觀地看到和解讀類內(nèi)和類間的相似性。

參考文獻:


計算步驟:

對于一個時間序列\begin{equation}T=t_1, t_2, \ldots, t_n\end{equation}

step1:對原始時間序列數(shù)據(jù)進行zscore歸一化,得到標準正態(tài)分布

\begin{equation}z_i=\frac{t_i-\mu}{\sigma}, i=1,2, \ldots, n\end{equation},μ是T的平均值,σ是T的標準差

step2:應用分段聚合近似(Piecewise Aggregation Approximation ,PAA)方法將Z的維數(shù)降至m。選擇合適的降維因子k,生成新的平滑時間序列

\begin{equation}x_i=\left\{\begin{array}{l}\frac{1}{k} \sum_{j=k *(i-1)+1}^{k * i} z_j, i=1,2, \ldots, m,\left\lceil\frac{n}{k}\right\rceil-\left\lfloor\frac{n}{k}\right\rfloor=0 \\\left\{\begin{array}{l}\frac{1}{k} \sum_{j=k *(i-1)+1}^{k * i} z_j, i=1,2, \ldots, m-1 \\\frac{1}{n-k *(m-1)} \sum_{j=k *(m-1)+1}^n z_j, i=m\end{array},\left\lceil\frac{n}{k}\right\rceil-\left\lfloor\frac{n}{k}\right\rfloor>0\right.\end{array}\right.\end{equation},\begin{equation}m=\left\lceil\frac{n}{k}\right\rceil\end{equation}

簡單地說,通過計算一個分段常數(shù)的平均值,將歸一化時間序列數(shù)據(jù)從n維降為m維,同時保持原始序列的近似趨勢。

step3:構造一個m × m矩陣,計算兩個時間戳之間的相對位置,將預處理后的時間序列X轉(zhuǎn)換為二維矩陣。

\begin{equation}M=\left[\begin{array}{cccc}x_1-x_1 & x_2-x_1 & \cdots & x_m-x_1 \\x_1-x_2 & x_2-x_2 & \cdots & x_m-x_2 \\\vdots & \ddots & \ddots & \vdots \\x_1-x_m & x_2-x_m & \cdots & x_m-x_m\end{array}\right]\end{equation}

顯然,時間序列的每兩個時間戳都用M連接起來,以獲得它們的相對位置,M的每一行和每一列都以某一個時間戳為參照點,包含了整個時間序列的信息。此外,作為我們工作的一個優(yōu)點,RPM可以作為一種數(shù)據(jù)增強方法,通過提供時間序列的冗余特征來提高泛化能力。M的每一行顯示不同參考點的時間序列,每一列顯示前者的鏡像,這提供了一個相反的視角來查看時間序列。

step4:應用min-max歸一化將M轉(zhuǎn)換為灰度值矩陣

\begin{equation}F=\frac{M-\min (M)}{\max (M)-\min (M)} \times 255\end{equation}


相對位置矩陣(Relative Position Matrix)Matlab代碼實現(xiàn)

function RPM=RelativePositionMatrix(x,k)

% 計算相對位置矩陣(Relative Position Matrix, RPM)

% 輸入:x,一維時間序列

% k,分段聚合近似(PAA)的縮減因子

% 輸出:RPM,相對位置矩陣

mu = mean(x);

delta = sqrt(var(x));

z = (x-mu)/delta;

% PAA

N = length(x);

m = ceil(N/k);

if ceil(N/k)-floor(N/k) == 0

? ? for i = 1:m

? ? ? ? X(i) = 1/k * sum(z(k*(i-1)+1:k*i));

? ? end

else

? ? for i = 1:m-1

? ? ? ? X(i) = 1/k * sum(z(k*(i-1)+1:k*i));

? ? end

? ? X(m) = 1/(N-k*(m-1)) * sum(z(k*(m-1)+1:N));

end

% 計算兩個時間戳之間的相對位置

M = repmat(X,m,1) - repmat(X',1,m);

%相對位移矩陣RPM

RPM = (M - min(M(:))) / (max(M(:))) - min(M(:)) * 255;

% 可視化

if nargout == 0

? ? imagesc(RPM);

? ? set(gcf,'Position',[300 200 450 300]); % 自行修改合適大小

? ? xlim([0,size(RPM,1)]);

? ? ylim([0,size(RPM,1)]);

? ? axis square

? ? colormap(jet); %自行修改colormap

end

end

使用方式

x=rand(1,1024);

k=4;

RelativePositionMatrix(x,k);

結(jié)果


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

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