亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
1095
2022-05-30
時間序列分析,即輸入特征都是與時間相關的數據,同時需要考慮周期、趨勢、節假日、突變等因素,通過一些手段來分析時間序列的特點,發現其中的變化規律,并用于預測未來時序數據的統計技術。分析時間序列,進行合理預測,做到提前掌握未來的發展趨勢,為業務決策提供依據,這也是決策科學化的前提。
代碼塊導入
在NAIE訓練平臺的JupyterLab界面操作時,不需要手動添加這一部分,因為在新創建的特征工程下已經包含了導入代碼。
import os os.chdir("/home/ma-user/work/test_anomaly_detection_noah") from naie.context import Context from naie.datasets import data_reference from naie.feature_processing import data_flow from naie.feature_analysis import data_analysis from naie.feature_processing.expression import col, cols, cond, f_and, f_not, f_or from naie.common.data.typedefinition import StepType, ColumnRelationship, JoinType, ColumnSelector,DynamicColumnsSelectorDetails, StaticColumnsSelectorDetails, ColumnsSelectorDetails, DataProcessMode
選擇數據1
如果是在NAIE平臺上操作,則以下代碼可通過點擊菜單欄中“數據集”下的“選擇數據”自動生成。
dataset = 'ts_data' dataset_entity = 'ts_decomposition' attrs={'is_time_series': True, 'time_column': 'time', 'time_format': 'timestamp(s)'} datareference = data_reference.get_data_reference(dataset, dataset_entity, attrs=attrs) dataflow = data_flow.create_data_flow(datareference) dataflow.to_pandas_dataframe()
1. 周期檢測
檢測給定時序數據的周期,或判斷指定的周期是否為時序數據的周期
參數:
data: 時序數據,可以是dataframe,數據路徑或者dataflow
columns: 待進行時序數據分析的目標列,list類型
id_column: 代表時序數據id列,沒有id列則使用默認值None,即認為整個數據為同一個id下的數據
time_column: 時序數據的時間列,沒有時間列則使用默認值None. 如果不為None,則會根據給定的時間列對時序數據排序
specified_period: 待驗證的指定周期,以樣本為單位,默認為None。若為None,則根據{'day', 'week', 'month', 'quarter', 'year'}進行遍歷周期檢測。
返回:
如果時序數據具有周期,則返回檢測到的周期,否則返回None。如果給定待檢驗周期,則檢測其是時序的周期時返回True,否則返回False.
from naie.ts_data_analysis import PeriodicityTest
# 周期檢測 pt = PeriodicityTest(dataflow, columns=['traffic'], time_column='time') result = pt.fit() print('Periodicity test: ') result
Periodicity test:
# 周期驗證 pt = PeriodicityTest(dataflow, columns=['traffic'], time_column='time') result = pt.fit(specified_period=8640) print('Periodicity test: ') result
Periodicity test:
選擇數據2
dataset = 'ts_data_analysis' dataset_entity = 'ts_analysis' datareference = data_reference.get_data_reference(dataset, dataset_entity) dataflow = data_flow.create_data_flow(datareference)
2. 平穩性判斷
參數:
significance_level: 顯著性水平
返回:
如果數據平穩,則返回True;否則,返回False
from naie.ts_data_analysis import StationarityTest
st = StationarityTest(data=dataflow, columns=['col_1_20_100', 'col_1_200_100'], id_column=None, time_column=None) result = st.fit(significance_level=0.001) print('Stationarity test: ') result
Stationarity test:
NAIE SDK幫助文檔匯總請參考:
數據挖掘
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。