0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Python比較兩個時間序列在圖形上是否相似

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-16 11:33 ? 次閱讀

比較兩個時間序列在圖形上是否相似,可以通過以下方法:

  1. 可視化比較:將兩個時間序列繪制在同一張圖上,并使用相同的比例和軸標簽進行比較??梢杂^察它們的趨勢、峰值和谷值等特征,從而進行比較。
  2. 峰值和谷值比較:通過比較兩個時間序列中的峰值和谷值來進行比較??梢员容^它們的幅度和位置。
  3. 相關性分析:計算兩個時間序列之間的相關系數(shù),從而確定它們是否存在線性關系。如果它們的相關系數(shù)接近1,則它們趨勢相似。
  4. 非線性方法:使用非線性方法來比較兩個時間序列,如動態(tài)時間規(guī)整、小波變換等。這些方法可以幫助捕捉兩個時間序列之間的相似性。

需要注意的是,圖形上的相似性并不能完全代表兩個時間序列之間的相似性,因為同一個圖形可以對應著不同的時間序列。因此,在進行時間序列的比較時,需要綜合考慮多個方面的信息

1.準備

開始之前,你要確保Pythonpip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點:Python 編程的最好搭檔—VSCode 詳細指南。

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
  2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install matplotlib
pip install numpy

2. 使用Matplotlib可視化比較兩個時間序列

import matplotlib.pyplot as plt

# 生成時間序列數(shù)據(jù)
x = [1, 2, 3, 4, 5]
y1 = [10, 15, 13, 17, 20]
y2 = [8, 12, 14, 18, 22]

# 繪制兩個時間序列的折線圖
plt.plot(x, y1, label='y1')
plt.plot(x, y2, label='y2')

# 設置圖形屬性
plt.xlabel('Time')
plt.ylabel('Value')
plt.title('Comparison of two time series')
plt.legend()

# 顯示圖形
plt.show()

2. 計算兩個時間序列的相關系數(shù):

import numpy as np

# 生成時間序列數(shù)據(jù)
x = [1, 2, 3, 4, 5]
y1 = [10, 15, 13, 17, 20]
y2 = [8, 12, 14, 18, 22]

# 計算相關系數(shù)
corr = np.corrcoef(y1, y2)[0, 1]

# 輸出結(jié)果
print('Correlation coefficient:', corr)

3.使用Python實現(xiàn)動態(tài)時間規(guī)整算法(DTW):

import numpy as np

# 生成時間序列數(shù)據(jù)
x = [1, 2, 3, 4, 5]
y1 = [10, 15, 13, 17, 20]
y2 = [8, 12, 14, 18, 22]

# 動態(tài)時間規(guī)整算法
def dtw_distance(ts_a, ts_b, d=lambda x, y: abs(x - y)):
    DTW = {}

    # 初始化邊界條件
    for i in range(len(ts_a)):
        DTW[(i, -1)] = float('inf')
    for i in range(len(ts_b)):
        DTW[(-1, i)] = float('inf')
    DTW[(-1, -1)] = 0

    # 計算DTW矩陣
    for i in range(len(ts_a)):
        for j in range(len(ts_b)):
            cost = d(ts_a[i], ts_b[j])
            DTW[(i, j)] = cost + min(DTW[(i-1, j)], DTW[(i, j-1)], DTW[(i-1, j-1)])

    # 返回DTW距離
    return DTW[len(ts_a)-1, len(ts_b)-1]

# 計算兩個時間序列之間的DTW距離
dtw_dist = dtw_distance(y1, y2)

# 輸出結(jié)果
print('DTW distance:', dtw_dist)
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)

    關注

    8

    文章

    6715

    瀏覽量

    88308
  • 編輯器
    +關注

    關注

    1

    文章

    797

    瀏覽量

    30929
  • python
    +關注

    關注

    53

    文章

    4753

    瀏覽量

    84077
收藏 人收藏

    評論

    相關推薦

    【「時間序列與機器學習」閱讀體驗】全書概覽與時間序列概述

    。 ●第5章“時間序列相似度與聚類”:介紹時間序列相似性度量方法,如歐氏距離、動態(tài)
    發(fā)表于 08-07 23:03

    關于對兩個信號進行比較

    現(xiàn)在我要做一兩個信號(一事先采集好的信號,一現(xiàn)在采集的信號)進行比較,看兩個信號的
    發(fā)表于 10-23 22:05

    一種基于頻繁模式的時間序列分類框架

    如何提取和選擇時間序列的特征是時間序列分類領域兩個重要的問題。該文提出MNOE(Mining Non-Overlap Episode)算法計
    發(fā)表于 02-08 15:41 ?7次下載

    流式時間序列的實時相似度研究

    序列。如何從中獲取有價值數(shù)據(jù)?時間序列數(shù)據(jù)挖掘是一種常用方法。和其它數(shù)據(jù)挖掘方法一樣,時間序列相似
    發(fā)表于 11-20 10:30 ?9次下載
    流式<b class='flag-5'>時間</b><b class='flag-5'>序列</b>的實時<b class='flag-5'>相似</b>度研究

    基于分布式的時間序列局部相似性檢測

    基于分布式平臺上的時間序列局部相似性檢測算法。將CrossMatch算法實現(xiàn)在了分布式框架上,解決了計算資源不足的問題。首先需要對序列進行切分,分別放置
    發(fā)表于 12-08 17:16 ?0次下載

    基于系數(shù)矩陣弧微分的時間序列相似度量

    傳統(tǒng)時間序列相似度量算法時間序列發(fā)生平移、時間軸伸
    發(fā)表于 03-29 09:45 ?0次下載

    矩陣弧微分的時間序列相似度量

    將某一統(tǒng)計指標的各個數(shù)值按時間先后順序排列便構(gòu)成了時間序列。從金融領域到科學工程,從天文氣象到社會學,時間
    發(fā)表于 04-24 10:29 ?11次下載

    如何用Python進行時間序列分解和預測?

    ,那么本文將帶你快速掌握一些必不可少的概念。 目錄 什么是時間序列? 如何在Python中繪制時間序列數(shù)據(jù)?
    的頭像 發(fā)表于 02-14 11:34 ?2403次閱讀
    如何用<b class='flag-5'>Python</b>進行<b class='flag-5'>時間</b><b class='flag-5'>序列</b>分解和預測?

    是否可以使用儀表放大器測量兩個光源之間的差異

    兩個光源以相同的強度發(fā)光。例如,比較同一建筑物內(nèi)控制室( 1 號房間)和另一間房( 2 號房間)的亮度會有幫助,以便可以白天的任何時間和夜里進行調(diào)整?;蛘撸瑢τ谝?/div>
    的頭像 發(fā)表于 02-11 10:25 ?1140次閱讀
    <b class='flag-5'>是否</b>可以使用儀表放大器測量<b class='flag-5'>兩個</b>光源之間的差異

    時間序列的特征表示和相似性度量研究分析

    特征表示和相似性度量方法進行了闡述。針對時間序列特征表示方法,從非數(shù)據(jù)適應性法、數(shù)據(jù)自適應性方法、基于模型的方法三方面進行說明,對各種主要方法的研究現(xiàn)狀、優(yōu)缺點、適用領域方法特性以及局限性等進行了
    發(fā)表于 04-02 13:53 ?40次下載
    <b class='flag-5'>時間</b><b class='flag-5'>序列</b>的特征表示和<b class='flag-5'>相似</b>性度量研究分析

    Python中用于終止線程的兩個選項

    ? 我經(jīng)常被問到如何殺死一后臺線程,這個問題的答案讓很多人不開心: 線程是殺不死的。本文中,我將向您展示? Python ?中用于終止線程的兩個選項。 如果我們是一
    的頭像 發(fā)表于 11-17 10:02 ?4520次閱讀

    判斷對稱二叉樹要比較的是哪兩個節(jié)點

    對于二叉樹是否對稱,要比較的是根節(jié)點的左子樹與右子樹是不是相互翻轉(zhuǎn)的,理解這一點就知道了其實我們要比較的是兩個樹(這兩個樹是根節(jié)點的左右子樹
    的頭像 發(fā)表于 07-06 16:26 ?936次閱讀

    兩個相同電路的電流是否相等?

    圖1(a)、(b)所示兩個電路其電路結(jié)構(gòu)和元件參數(shù)均相同,是完全相同的電路。那么兩個圖中的I是否相同?
    的頭像 發(fā)表于 03-10 09:42 ?1283次閱讀
    <b class='flag-5'>兩個</b>相同電路的電流<b class='flag-5'>是否</b>相等?

    如何判定兩個信號序列相似程度?

    統(tǒng)計學中,相關是描述兩個隨機變量序列或二元數(shù)據(jù)之間的統(tǒng)計關系,無論是否具有因果關系。
    的頭像 發(fā)表于 04-15 09:14 ?6709次閱讀
    如何判定<b class='flag-5'>兩個</b>信號<b class='flag-5'>序列</b>的<b class='flag-5'>相似</b>程度?

    關于兩個Python開源識別工具的效果

    回復希望出一篇 OCR 相關的文章,今天嘗試了一下 cnocr 和 tesseract 兩個 Python 開源識別工具的效果,給大家分別講講兩個工具的使用方法和對比效果。 1.準備 開始之前,你要確保
    的頭像 發(fā)表于 10-17 11:36 ?522次閱讀
    關于<b class='flag-5'>兩個</b><b class='flag-5'>Python</b>開源識別工具的效果