【数据竞赛】Kaggle时序建模案例:预测水资源可用性
Acea Smart Water Analytics
您能否預測水資源未來的的可用性?
每個數據集代表一種不同類型的水體。由于每個水體彼此不同,相關特征也不同。我們會注意到它的特征與湖泊的特征不同。這些差異是根據每個水體的獨特行為和特征預期的。
步驟1:數據集讀取
首先讀取數據,并找到對應的日期列,
from?datetime?import?datetime,?date? df['date']?=?pd.to_datetime(df['date'],?format?=?'%d/%m/%Y')其中特征列為Rainfall、Temperature、Volume和Hydrometry,標簽列為Depth to Groundwater。
步驟2:數據集分析
時間間隔
分析日期是否包含連續:通過date列進行diff,如果日期列沒有缺失值則最大diff為1day。
df?=?df.sort_values(by='date') df['delta']?=?df['date']?-?df['date'].shift(1) df[['date',?'delta']].head()缺失值分析
分析數據集是否包含空值,繪制的時間序列顯示似乎有一些零值,我們將用nan值替換它們,然后再填充它們。
缺失值填充
使用NaN填充
使用均值填充
使用最近的樣本填充
使用插值填充
平滑數據/重采樣
重采樣可以提供更多的數據信息。重采樣有兩種類型:
上采樣:采樣頻率增加(例如,數天到數小時)。
下采樣:采樣頻率降低(例如,從天到周)。
平穩性
一些時間序列模型,如ARIMA,假設基礎數據是平穩的。平穩性描述了時間序列具有:
常數均值和均值不依賴于時間
常數方差和方差與時間無關
常數協方差和協方差與時間無關
平穩性檢查可以通過三種不同的方法來完成:
視覺上:繪制時間序列并檢查趨勢或季節性
基本統計:拆分時間序列,比較每個分區的均值和方差
統計檢驗:擴充Dickey Fuller檢驗
特征工程
日期信息
周期編碼
新的時間特性是周期性的,特征月周期為每年1至12個月。雖然每個月之間的差值在一年內增加1,但在兩年內,月特性從12(12月)跳到1(1月)。
時序分解
時間序列分解涉及到將一個序列看作水平、趨勢、季節性和噪聲成分的組合。
等級:級數中的平均值。
趨勢:數列中增加或減少的值。
季節性:在系列中重復的短期循環。
噪聲:數列中的隨機變化。
Lag特征
EDA分析
相關性分析
自相關分析
自相關函數(ACF): P=滯后周期,P幫助調整用于預測序列的擬合線,P對應于MA參數
部分自相關函數(PACF): D是時間序列達到平穩所需的差分變換次數。D對應AR參數。
構建模型
時間序列可以是單變量的也可以是多變量的:
單變量時間序列只有一個時間因變量。
多變量時間序列具有多個時間因變量。
數據劃分方法
from?sklearn.model_selection?import?TimeSeriesSplit單變量時序模型
Prophet
ARIMA
LSTM
多變量時序模型
Prophet
完整代碼鏈接:https://www.kaggle.com/andreshg/timeseries-analysis-a-complete-guide/notebook
往期精彩回顧適合初學者入門人工智能的路線及資料下載(圖文+視頻)機器學習入門系列下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印《統計學習方法》的代碼復現專輯 AI基礎下載機器學習交流qq群955171419,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【数据竞赛】Kaggle时序建模案例:预测水资源可用性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言 %15s,c语言求助
- 下一篇: 【NLP】大模型时代,我们真的不再需要分