<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
時間序列資料隨處可見,要進行時間序列分析,我們必須先對資料進行預處理。時間序列預處理技術對資料建模的準確性有重大影響。
在本文中,我們將主要討論以下幾點:
首先,讓我們先了解時間序列的定義:
時間序列是在特定時間間隔內記錄的一系列均勻分佈的觀測值。
時間序列的一個例子是黃金價格。在這種情況下,我們的觀察是在固定時間間隔後一段時間內收集的黃金價格。時間單位可以是分鐘、小時、天、年等。但是任何兩個連續樣本之間的時間差是相同的。
在本文中,我們將看到在深入研究資料建模部分之前應執行的常見時間序列預處理步驟和與時間序列資料相關的常見問題。
時間序列資料預處理
時間序列資料包含大量資訊,但通常是不可見的。與時間序列相關的常見問題是無序時間戳、缺失值(或時間戳)、異常值和資料中的噪聲。在所有提到的問題中,處理缺失值是最困難的一個,因為傳統的插補(一種通過替換缺失值來保留大部分資訊來處理缺失資料的技術)方法在處理時間序列資料時不適用。為了分析這個預處理的實時分析,我們將使用 Kaggle 的 Air Passenger 資料集。
時間序列資料通常以非結構化格式存在,即時間戳可能混合在一起並且沒有正確排序。另外在大多數情況下,日期時間列具有預設的字串資料型別,在對其應用任何操作之前,必須先將資料時間列轉換為日期時間資料型別。
讓我們將其實現到我們的資料集中:
import pandas as pd passenger = pd.read_csv('AirPassengers.csv') passenger['Date'] = pd.to_datetime(passenger['Date']) passenger.sort_values(by=['Date'], inplace=True, ascending=True)
處理時間序列資料中的缺失值是一項具有挑戰性的任務。傳統的插補技術不適用於時間序列資料,因為接收值的順序很重要。為了解決這個問題,我們有以下插值方法:
插值是一種常用的時間序列缺失值插補技術。它有助於使用周圍的兩個已知資料點估計丟失的資料點。這種方法簡單且最直觀。
處理時序資料時可以使用以下的方法:
讓我們看看我們的資料在插補之前的樣子:
from matplotlib.pyplot import figure import matplotlib.pyplot as plt figure(figsize=(12, 5), dpi=80, linewidth=10) plt.plot(passenger['Date'], passenger['Passengers']) plt.title('Air Passengers Raw Data with Missing Values') plt.xlabel('Years', fontsize=14) plt.ylabel('Number of Passengers', fontsize=14) plt.show()
讓我們看看以上三個方法的結果:
passenger[‘Linear'] = passenger[‘Passengers'].interpolate(method='linear') passenger[‘Spline order 3'] = passenger[‘Passengers'].interpolate(method='spline', order=3) passenger[‘Time'] = passenger[‘Passengers'].interpolate(method='time') methods = ['Linear', 'Spline order 3', 'Time'] from matplotlib.pyplot import figure import matplotlib.pyplot as plt for method in methods: figure(figsize=(12, 4), dpi=80, linewidth=10) plt.plot(passenger["Date"], passenger[method]) plt.title('Air Passengers Imputation using: ' + types) plt.xlabel("Years", fontsize=14) plt.ylabel("Number of Passengers", fontsize=14) plt.show()
所有的方法都給出了還不錯的結果。當缺失值視窗(缺失資料的寬度)很小時,這些方法更有意義。但是如果丟失了幾個連續的值,這些方法就更難估計它們。
時間序列中的噪聲元素可能會導致嚴重問題,所以一般情況下在構建任何模型之前都會有去除噪聲的操作。最小化噪聲的過程稱為去噪。以下是一些通常用於從時間序列中去除噪聲的方法:
捲動平均值是先前觀察視窗的平均值,其中視窗是來自時間序列資料的一系列值。為每個有序視窗計算平均值。這可以極大地幫助最小化時間序列資料中的噪聲。
讓我們在谷歌股票價格上應用捲動平均值:
rolling_google = google_stock_price['Open'].rolling(20).mean() plt.plot(google_stock_price['Date'], google_stock_price['Open']) plt.plot(google_stock_price['Date'], rolling_google) plt.xlabel('Date') plt.ylabel('Stock Price') plt.legend(['Open','Rolling Mean']) plt.show()
傅立葉變換可以通過將時間序列資料轉換到頻域來幫助去除噪聲,我們可以過濾掉噪聲頻率。然後應用傅立葉反變換得到濾波後的時間序列。我們用傅立葉變換來計算谷歌股票價格。
denoised_google_stock_price = fft_denoiser(value, 0.001, True) plt.plot(time, google_stock['Open'][0:300]) plt.plot(time, denoised_google_stock_price) plt.xlabel('Date', fontsize = 13) plt.ylabel('Stock Price', fontsize = 13) plt.legend([‘Open','Denoised: 0.001']) plt.show()
時間序列中的離群值是指趨勢線的突然高峰或下降。導致離群值可能有多種因素。讓我們看一下檢測離群值的可用方法:
這種方法最直觀,適用於幾乎所有型別的時間序列。在這種方法中,上限和下限是根據特定的統計量度建立的,例如均值和標準差、Z 和 T 分數以及分佈的百分位數。例如,我們可以將上限和下限定義為:
取整個序列的均值和標準差是不可取的,因為在這種情況下,邊界將是靜態的。邊界應該在捲動視窗的基礎上建立,就像考慮一組連續的觀察來建立邊界,然後轉移到另一個視窗。該方法是一種高效、簡單的離群點檢測方法。
顧名思義,孤立森林是一種基於決策樹的異常檢測機器學習演演算法。它通過使用決策樹的分割區隔離給定特徵集上的資料點來工作。換句話說,它從資料集中取出一個樣本,並在該樣本上構建樹,直到每個點都被隔離。為了隔離資料點,通過選擇該特徵的最大值和最小值之間的分割來隨機進行分割區,直到每個點都被隔離。特徵的隨機分割區將為異常資料點在樹中建立更短的路徑,從而將它們與其餘資料區分開來。
K-means 聚類是一種無監督機器學習演演算法,經常用於檢測時間序列資料中的異常值。該演演算法檢視資料集中的資料點,並將相似的資料點分組為 K 個聚類。通過測量資料點到其最近質心的距離來區分異常。如果距離大於某個閾值,則將該資料點標記為異常。K-Means 演演算法使用歐幾里得距離進行比較。
如果一個人在簡歷中寫了一個關於時間序列的專案,那麼面試官可以從這個主題中提出這些可能的問題:
在本文中,我們研究了一些常見的時間序列資料預處理技術。我們從排序時間序列觀察開始;然後研究了各種缺失值插補技術。因為我們處理的是一組有序的觀察結果,所以時間序列插補與傳統插補技術不同。此外,還將一些噪聲去除技術應用於谷歌股票價格資料集,最後討論了一些時間序列的異常值檢測方法。使用所有這些提到的預處理步驟可確保高質量資料,為構建複雜模型做好準備。
到此這篇關於Python時間序列資料的預處理方法總結的文章就介紹到這了,更多相關Python資料預處理內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45