日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器学习基础】相当全面的时间序列基础教程总结

發布時間:2025/3/12 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习基础】相当全面的时间序列基础教程总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:小雨姑娘,康涅狄格大學,Datawhale成員

最近在Kaggle發現了一個關于時間序列比較不錯的kernal,決定翻譯一下搬運過來,大家一起學習交流一下。如果預期不錯的話準備寫四章,分別是時間序列Python基本操作、統計分析、時間序列分解與隨機游走統計建模分析。

0 數據集

本教程包括兩個數據集(后臺回復“210321”可獲取):

Google Stocks?Data:提供了長達十三年的股票數據。時間粒度精確到天,提供了每個股票每天的最高價,最低價格以及開盤價格等信息。

Humidity in different world cities:提供了世界各地各個城市的大氣濕度信息,時間粒度為分鐘。

1. 基本操作(一)

1.1 讀取數據

在使用pd.read_csv讀取時間序列時,可以設置兩個參數。使用parse_dates參數可以把指定的列從文本類型轉化為Pandas內置時間類型,使用index_col可以把指定的列轉化為數據集的索引。

google = pd.read_csv('../input/stock-time-series-20050101-to-20171231/GOOGL_2006-01-01_to_2018-01-01.csv', index_col='Date', parse_dates=['Date']) google.head()

另一個數據集也可以以同樣的方法讀入

1.2 數據預處理

股票數據并不存在缺失值,但是天氣濕度數據卻存在缺失值。使用參數為ffill的fillna()函數,用后一時刻的觀測值進行填補。

humidity = humidity.iloc[1:] humidity = humidity.fillna(method='ffill') humidity.head()

1.3 數據可視化

使用pandas Series對象的asfreq[2]函數對時間序列數據以指定頻率作圖。其中M代表以月為基本單位。默認是使用時間窗的結尾作為結果,例如2019年12月這個月的結果實際是12月31號的數據。

humidity["Kansas City"].asfreq('M').plot() plt.title('Humidity in Kansas City over time(Monthly frequency)') plt.show()

google['2008':'2010'].plot(subplots=True, figsize=(10,12)) plt.title('Google stock attributes from 2008 to 2010') plt.savefig('stocks.png') plt.show()

1.4 時間戳與時間窗

時間戳(Timestamps)用來表示某個時間點,時間窗(Periods)用來表示某個時間區間。時間窗常常用來檢測在某個時間段內是否發生了特殊事件。時間戳與時間窗之間也可以相互進行轉換。

創建時間戳:

timestamp = pd.Timestamp(2017, 1, 1, 12) timestamp

創建時間窗:

period = pd.Period('2017-01-01') period

檢測時間戳是否在特定時間窗內

period.start_time < timestamp < period.end_time

將時間戳轉換為時間窗

new_period = timestamp.to_period(freq='H')

將時間窗轉換為時間戳

new_timestamp = period.to_timestamp(freq='H', how='start')

1.5 使用date_range方法

date_range 是一個可以返回多個datetime對象組成的序列的方法。它經常被用于創建連續的時間序列(用法非常簡單,不要再用for循環創建時間序列了!!)

dr1 = pd.date_range(start='1/1/18', end='1/9/18')

也可以指定頻率

dr2 = pd.date_range(start='1/1/18', end='1/1/19', freq='M')

1.6 Datetime對象

pandas.to_datetime() [3]用來將參數轉化為datetime對象。具體使用方法可以看官方文檔

df = pd.DataFrame({'year': [2015, 2016], 'month': [2, 3], 'day': [4, 5]})

df = pd.to_datetime(df) df = pd.to_datetime('01-01-2017')

1.7 平移

除此之外我們還可以把時間序列進行平移。這個方法經常用于比較時間序列與之前是否相關,判斷是否具有延后性。

humidity["Vancouver"].asfreq('M').plot(legend=True) shifted = humidity["Vancouver"].asfreq('M').shift(10).plot(legend=True) shifted.legend(['Vancouver','Vancouver_lagged']) plt.show()

紅色的線是藍色的線往右平移的結果

1.8 重采樣

上采樣—把時間序列從低頻轉化為高頻,其中包含了缺失值的填補與插值操作。

下采樣—把時間序列從高頻轉化為低頻,其中包含了對于數據的聚合操作。

下面代碼使用resample函數,以三天為頻率對數據進行下采樣,然后采用均值方法對數據進行聚合。

pressure = pressure.resample('3D').mean() pressure.head()

2. 基本操作(二)

2.1 相對差異

通過Series對象的shift方法可以將數據平移一個單位,如下圖:

shift前:

shift后:

通過div方法可以實現列與列的逐屬性相除,這樣就可以得到后一天和前一天的比率,用來觀測數據每天的變化情況

google['Change'] = google.High.div(google.High.shift()) google['Change'].plot(figsize=(20,8))

2.2 絕對值差異

除了觀測改變的比率,還可以觀測改變的值

google.High.diff().plot(figsize=(20,6))

2.3 比較多個時間序列

首先讀取另一個時間序列Microsoft的股票

microsoft = pd.read_csv('../input/stock-time-series-20050101-to-20171231/MSFT_2006-01-01_to_2018-01-01.csv', index_col='Date', parse_dates=['Date'])

作圖

google.High.plot() microsoft.High.plot() plt.legend(['Google','Microsoft']) plt.show()

但是由于谷歌和微軟單個股票的價格差異過大,很難比較,所以使用時間序列的第一個值進行標準化(思考一下,使用第一個值進行標準化其實并不是特別魯棒)

normalized_google = google.High.div(google.High.iloc[0]).mul(100) normalized_microsoft = microsoft.High.div(microsoft.High.iloc[0]).mul(100) normalized_google.plot() normalized_microsoft.plot() plt.legend(['Google','Microsoft']) plt.show()

這樣就可以顯然看出買谷歌比買微軟掙得多

2.4 數據平滑

數據平滑可以用來檢測時間序列在一定時期的趨勢,分為rolling與expanding兩個方法。其中rolling考慮幾個時間窗內的數據,expanding考慮之前所有數據。

下面代碼是以90天為單位的時間窗對數據進行平滑的效果,可以發現平滑后的數據更加穩健。

rolling_google = google.High.rolling('90D').mean() google.High.plot() rolling_google.plot() plt.legend(['High','Rolling Mean']) plt.show()

下面的expanding方法的結果

microsoft_mean = microsoft.High.expanding().mean() microsoft_std = microsoft.High.expanding().std() microsoft.High.plot() microsoft_mean.plot() microsoft_std.plot() plt.legend(['High','Expanding Mean','Expanding Standard Deviation']) plt.show()

2.5 OHLC圖

OHLC圖是專門針對時間序列的一種圖,其中四個字母的含義如下:open, high, low and close price。這好像就是我媽看股票的時候的那個圖。

使用這個庫就可以畫出來 import plotly.graph_objs as go

trace = go.Ohlc(x=google['06-2008'].index,open=google['06-2008'].Open,high=google['06-2008'].High,low=google['06-2008'].Low,close=google['06-2008'].Close) data = [trace] iplot(data, filename='simple_ohlc')

這個圖主要可以看出來當天是跌了還是漲了,然后變了多少。

2.6 K線圖

好像也是股票中常見的一種圖,不是特別重要,能看懂就可以。

trace = go.Candlestick(x=google['03-2008'].index,open=google['03-2008'].Open,high=google['03-2008'].High,low=google['03-2008'].Low,close=google['03-2008'].Close) data = [trace] iplot(data, filename='simple_candlestick') 缺圖

2.7 自相關性與偏自相關性

  • 自相關性

表示當前時間與它之前不同時間點之間的相關性

  • 偏自相關性

表示當前時間與它之前不同時間點之間,去除了中間時間干擾的相關性。自相關性就是時間與時間的相關性,偏自相關性是剔除了。

對他們的影響之后再計算的相關性。至于怎么計算的可以參考博客:
https://blog.csdn.net/weixin_42382211/article/details/81136787

自相關:

plot_acf(humidity["San Diego"],lags=25,title="San Diego") plt.show()

這樣看基本所有滯后的時間長度都存在相關性,在滯后12、13天的時候相關性最低,但是都超過了置信區間(圖中藍色的區域)

偏自相關:

plot_pacf(humidity["San Diego"],lags=25) plt.show()

看起來所有時間跨度都具有顯著性,但是除了前兩個,偏自相關性都很弱。

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 本站qq群851320808,加入微信群請掃碼:“整理不易,點贊三連↓

總結

以上是生活随笔為你收集整理的【机器学习基础】相当全面的时间序列基础教程总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91网入口 | 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 午夜视频福利在线 | 99久久久无码国产精品免费麻豆 | 国产精品嫩草影院av蜜臀 | 天天做天天躁天天躁 | 偷拍视频久久 | 亚洲色图27p | 椎名由奈在线观看 | 亚洲国产欧美精品 | 国产精品久久91 | 特级毛片在线观看 | 9i免费看片黄 | 上原亚衣在线 | 日本一区二区三区在线观看 | 成人1区2区3区| 亚洲a视频在线观看 | 毛片的网址 | 白石茉莉奈黑人 | 台湾150部性三级 | 国产高清久久 | 欧美三日本三级少妇99 | 久久99婷婷| 中文字幕在线影院 | 色视频网| 28一20岁女人一级 | 成人动漫亚洲 | 精品国产一区二区三区在线 | 精品乱码一区二区三区四区 | 欧美脚交 | 老色批网站| 99精品小视频 | 精品视频在线免费看 | 日本黄色小片 | www.黄色片 | 午夜精品剧场 | 免费jizz | 91精品国产综合久久精品图片 | 亚洲国产成人一区 | 美女屁股无遮挡 | 污的视频在线观看 | 国产欧美综合一区 | 国产无遮挡18禁无码网站不卡 | 3d成人动漫在线观看 | 在线视频日本 | 欧美一区二区在线观看视频 | 亚洲人体视频 | 亚洲综合激情在线 | 亚洲一区偷拍 | 日韩一区免费 | 中文字幕精品久久久久人妻红杏ⅰ | 又粗又大又硬又长又爽 | 欧美福利网 | 牛人盗摄一区二区三区视频 | 亚洲综合影院 | 亚洲国产av一区二区 | 成年人激情视频 | 国产一区二区不卡在线 | 亚洲精品久久视频 | 国产在线黄色 | 久久人人爽人人爽人人av | 国产精品一级视频 | 亚洲av无码乱码国产精品久久 | 国产精品香蕉国产 | 人物动物互动39集免费观看 | jjzz国产| 国产中文字幕亚洲 | 97人人爽人人爽人人爽人人爽 | 拔萝卜91| 欧美性猛交xxx乱大交3蜜桃 | 国产av无码专区亚洲精品 | 日韩一级片免费观看 | 亚洲色图美腿丝袜 | 午夜高清 | 午夜视频在线播放 | 亚洲激情一区二区三区 | 理论片第一页 | 久久日韩精品 | 国产人妻777人伦精品hd | 欧美国产日韩一区二区三区 | 在线观看午夜 | 美女被男生免费视频 | 一区二区三区在线视频观看 | 日韩 在线| 欧美影院久久 | 亚洲成人精品一区二区 | 麻豆日产六区 | 亚洲AV无码久久精品国产一区 | 五月天堂网 | 国产精品中文字幕在线观看 | 成人国产一区二区 | 国产成人精品无码免费看夜聊软件 | 中文字幕一区二区在线老色批影视 | 亲切的金子餐桌片段的金子 | 自拍偷拍第5页 | 久久久久亚洲精品国产 | 91九色偷拍 | 曰韩一级片 | 中文字幕在线2019 |