自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

時(shí)間序列特征提取的Python和Pandas代碼示例

開發(fā) 前端
使用Pandas和Python從時(shí)間序列數(shù)據(jù)中提取有意義的特征,包括移動(dòng)平均,自相關(guān)和傅里葉變換。

使用Pandas和Python從時(shí)間序列數(shù)據(jù)中提取有意義的特征,包括移動(dòng)平均,自相關(guān)和傅里葉變換。

前言

時(shí)間序列分析是理解和預(yù)測(cè)各個(gè)行業(yè)(如金融、經(jīng)濟(jì)、醫(yī)療保健等)趨勢(shì)的強(qiáng)大工具。特征提取是這一過程中的關(guān)鍵步驟,它涉及將原始數(shù)據(jù)轉(zhuǎn)換為有意義的特征,可用于訓(xùn)練模型進(jìn)行預(yù)測(cè)和分析。在本文中,我們將探索使用Python和Pandas的時(shí)間序列特征提取技術(shù)。

在深入研究特征提取之前,讓我們簡(jiǎn)要回顧一下時(shí)間序列數(shù)據(jù)。時(shí)間序列數(shù)據(jù)是按時(shí)間順序索引的數(shù)據(jù)點(diǎn)序列。時(shí)間序列數(shù)據(jù)的例子包括股票價(jià)格、溫度測(cè)量和交通數(shù)據(jù)。時(shí)間序列數(shù)據(jù)可以是單變量,也可以是多變量。單變量時(shí)間序列數(shù)據(jù)只有一個(gè)變量,而多變量時(shí)間序列數(shù)據(jù)有多個(gè)變量。

圖片

有各種各樣的特征提取技術(shù)可以用于時(shí)間序列分析。在本文中,我們將介紹以下技術(shù):

  • Resampling
  • Moving Average
  • Exponential Smoothing
  • Autocorrelation
  • Fourier Transform

1、Resampling

Resampling 重采樣主要是改變時(shí)間序列數(shù)據(jù)的頻率。這對(duì)于平滑噪聲或?qū)?shù)據(jù)采樣到較低的頻率很有用。Pandas提供了resample()方法對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行重新采樣。resample()方法可用于對(duì)數(shù)據(jù)進(jìn)行上采樣或下采樣。下面是一個(gè)如何將時(shí)間序列降采樣到每日頻率的示例:

import pandas as pd

# create a time series with minute frequency
ts = pd.Series([1, 2, 3, 4, 5], index=pd.date_range('2022-01-01', periods=5, freq='T'))

# downsample to daily frequency
daily_ts = ts.resample('D').sum()

print(daily_ts)

在上面的例子中,我們創(chuàng)建了一個(gè)以分鐘為頻率的時(shí)間序列,然后使用resample()方法將其采樣到每天的頻率。

圖片

2、Moving Average

Moving Average 移動(dòng)平均是一種通過在滾動(dòng)窗口上求平均值來(lái)平滑時(shí)間序列數(shù)據(jù)的技術(shù)??梢詭椭コ肼暡⒌玫綌?shù)據(jù)的趨勢(shì)。Pandas提供了rolling()方法來(lái)計(jì)算時(shí)間序列的平均值。下面是一個(gè)如何計(jì)算時(shí)間序列的平均值的例子:

import pandas as pd

# create a time series
ts = pd.Series([1, 2, 3, 4, 5])

# calculate the rolling mean with a window size of 3
rolling_mean = ts.rolling(window=3).mean()

print(rolling_mean)

我們創(chuàng)建了一個(gè)時(shí)間序列,然后使用rolling()方法計(jì)算窗口大小為3的移動(dòng)平均值。

圖片

可以看到前兩個(gè)值因?yàn)闆]有到達(dá)移動(dòng)平均的最小數(shù)量3,所以會(huì)產(chǎn)生NAN,如果需要的話可以再使用fillna方法進(jìn)行填充。

3、Exponential Smoothing

Exponential Smoothing 指數(shù)平滑是一種通過賦予最近值更多權(quán)重來(lái)平滑時(shí)間序列數(shù)據(jù)的技術(shù)。它可以幫助去除噪聲獲得數(shù)據(jù)的趨勢(shì)。Pandas提供了計(jì)算指數(shù)移動(dòng)平均的ewm()方法。

import pandas as pd
ts = pd.Series([1, 2, 3, 4, 5])
ts.ewm( alpha =0.5).mean()

在上面的例子中,我們創(chuàng)建了一個(gè)時(shí)間序列,然后使用ewm()方法計(jì)算平滑因子為0.5的指數(shù)移動(dòng)平均。

ewm有很多的參數(shù),這里我們介紹幾個(gè)主要的。

com:根據(jù)質(zhì)心指定衰減

圖片

span 根據(jù)范圍指定衰減

圖片

halflife 根據(jù)半衰期指定衰減

圖片

alpha 指定平滑系數(shù)α

圖片

以上4個(gè)參數(shù)都是指定平滑系數(shù)α,只是前三個(gè)是根據(jù)條件計(jì)算出來(lái)的,最后一個(gè)是手動(dòng)指定,所以至少要有一個(gè),例如上面的例子我們就直接手動(dòng)設(shè)定了0.5

min_periods 窗口中具有值的最小觀察數(shù),默認(rèn) 0。

adjust 是否進(jìn)行誤差修正 默認(rèn)True。

adjust =Ture時(shí)公式如下:

圖片

adjust =False

圖片

4、Autocorrelation

Autocorrelation 自相關(guān)是一種用于測(cè)量時(shí)間序列與其滯后版本之間相關(guān)性的技術(shù)??梢宰R(shí)別數(shù)據(jù)中重復(fù)的模式。Pandas提供了autocorr()方法來(lái)計(jì)算自相關(guān)性。

import pandas as pd

# create a time series
ts = pd.Series([1, 2, 3, 4, 5])

# calculate the autocorrelation with a lag of 1
autocorr = ts.autocorr(lag=1)

print(autocorr)

圖片

5、Fourier Transform

Fourier Transform 傅里葉變換是一種將時(shí)間序列數(shù)據(jù)從時(shí)域變換到頻域的技術(shù)??梢宰R(shí)別數(shù)據(jù)中的周期性模式。我們可以使用numpy的fft()方法來(lái)計(jì)算時(shí)間序列的快速傅里葉變換。

import pandas as pd
import numpy as np

# create a time series
ts = pd.Series([1, 2, 3, 4, 5])

# calculate the Fourier transform
fft = pd.Series(np.fft.fft(ts).real)

print(fft)

圖片

這里我們只顯示了實(shí)數(shù)的部分。

總結(jié)

在本文中,我們介紹了幾種使用Python和Pandas的時(shí)間序列特征提取技術(shù)。這些技術(shù)可以幫助將原始時(shí)間序列數(shù)據(jù)轉(zhuǎn)換為可用于分析和預(yù)測(cè)的有意義的特征,在訓(xùn)練機(jī)器學(xué)習(xí)模型時(shí),這些特征都可以當(dāng)作額外的數(shù)據(jù)輸入到模型中,可以增加模型的預(yù)測(cè)能力。


責(zé)任編輯:華軒 來(lái)源: DeepHub IMBA
相關(guān)推薦

2024-08-26 12:57:15

2025-01-16 16:24:07

2025-03-14 10:13:41

Python時(shí)間序列特征機(jī)器學(xué)習(xí)

2022-08-14 16:15:52

Python機(jī)器學(xué)習(xí)大數(shù)據(jù)

2024-04-26 12:29:36

2020-03-13 08:38:18

電磁指紋提取

2023-04-09 15:57:39

時(shí)間序列分析Python開發(fā)

2018-09-04 10:24:35

網(wǎng)絡(luò)流量提取工具

2023-09-20 11:42:52

2020-07-08 15:43:26

數(shù)據(jù)機(jī)器學(xué)習(xí)提取

2022-12-05 16:38:48

Python統(tǒng)計(jì)信息預(yù)測(cè)模型

2024-01-30 01:12:37

自然語(yǔ)言時(shí)間序列預(yù)測(cè)Pytorch

2024-06-17 16:02:58

2024-05-08 14:05:03

時(shí)間序列數(shù)據(jù)

2019-06-12 16:21:52

時(shí)間序列PythonPandas

2023-02-07 16:21:37

時(shí)間序列列數(shù)據(jù)集

2010-04-21 13:31:11

Oracle時(shí)間

2023-10-15 17:07:35

PandasPython庫(kù)

2024-09-03 11:37:48

2024-11-04 15:34:01

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)