PDF转Excel:高效去除AI特征,实现数据自由编辑
978
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小时内删除侵权内容。