文章目錄[隱藏]
Acea Smart Water Analytics
您能否預測水資源未來的的可用性?
每個(ge) 數據集代表一種不同類型的水體(ti) 。由於(yu) 每個(ge) 水體(ti) 彼此不同,相關(guan) 特征也不同。我們(men) 會(hui) 注意到它的特征與(yu) 湖泊的特征不同。這些差異是根據每個(ge) 水體(ti) 的獨特行為(wei) 和特征預期的。
步驟1:數據集讀取
首先讀取數據,並找到對應的日期列,
from datetime import datetime, date df['date'] = pd.to_datetime(df['date'], format = '%d/%m/%Y')
其中特征列為(wei) Rainfall、Temperature、Volume和Hydrometry,標簽列為(wei) Depth to Groundwater。
步驟2:數據集分析
時間間隔
分析日期是否包含連續:通過date列進行diff,如果日期列沒有缺失值則最大diff為(wei) 1day。
df = df.sort_values(by='date') df['delta'] = df['date'] - df['date'].shift(1) df[['date', 'delta']].head()
缺失值分析
分析數據集是否包含空值,繪製的時間序列顯示似乎有一些零值,我們(men) 將用nan值替換它們(men) ,然後再填充它們(men) 。
缺失值填充
- 使用NaN填充
- 使用均值填充
- 使用最近的樣本填充
- 使用插值填充
平滑數據/重采樣
重采樣可以提供更多的數據信息。重采樣有兩(liang) 種類型:
- 上采樣:采樣頻率增加(例如,數天到數小時)。
- 下采樣:采樣頻率降低(例如,從天到周)。
平穩性
一些時間序列模型,如ARIMA,假設基礎數據是平穩的。平穩性描述了時間序列具有:
- 常數均值和均值不依賴於時間
- 常數方差和方差與時間無關
- 常數協方差和協方差與時間無關
平穩性檢查可以通過三種不同的方法來完成:
- 視覺上:繪製時間序列並檢查趨勢或季節性
- 基本統計:拆分時間序列,比較每個分區的均值和方差
- 統計檢驗:擴充Dickey Fuller檢驗
特征工程
日期信息
周期編碼
新的時間特性是周期性的,特征月周期為(wei) 每年1至12個(ge) 月。雖然每個(ge) 月之間的差值在一年內(nei) 增加1,但在兩(liang) 年內(nei) ,月特性從(cong) 12(12月)跳到1(1月)。
時序分解
時間序列分解涉及到將一個(ge) 序列看作水平、趨勢、季節性和噪聲成分的組合。
- 等級:級數中的平均值。
- 趨勢:數列中增加或減少的值。
- 季節性:在係列中重複的短期循環。
- 噪聲:數列中的隨機變化。
Lag特征
EDA分析
相關性分析
自相關分析
-
自相關(guan) 函數(ACF): P=滯後周期,P幫助調整用於(yu) 預測序列的擬合線,P對應於(yu) MA參數
-
部分自相關(guan) 函數(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
評論已經被關(guan) 閉。