概念漂移自适应阈值

网友投稿 650 2022-05-30

定义:概念漂移自适应阈值即非人为指定阈值,而是根据具体数据通过算法求解出来最佳值,用于判断是否发生漂移,其大小影响漂移检测的敏感度

适用场景:同一业务线,包含多种数据类型,每种数据类型的最佳阈值不同,人工调测出阈值不实际。先对所有数据进行时序聚类,针对聚类后的每一簇数据,取其中部分数据进行概念漂移标注求解出最佳阈值,将此最佳阈值应用于本簇中的所有数据。

自适应阈值求解

给定包含概念漂移标注信息的时序数据,通过算法求解出用于判断漂移的最佳值。

参数:

data: 时序数据,可以是DataFrame,数据路径,DataReference.

columns: 待进行概念漂移检测的目标列,str或list类型。

label_name: 概念漂移标签列列名,str字符串。

id_column: 可选参数,时序数据id列的列名,str字符串,默认None.

自适应阈值求解参数

win_size: 滑动窗的大小。为了研究输入时间序列是否发生概念漂移,通常使用滑动窗口,一般窗口大小为一天数据量的倍数。如果为None,则根据time_interval计算,取三天数据量。

stride: 概念漂移检测粒度。默认为None,若为None则通过time_interval计算,天数据量的七分之一左右。

time_interval: int整型,数据收集的时间间隔(以秒为单位)。可选参数,如果win_size或者stride没有给定,则需给定time_interval来计算二者。

返回:

best_k_iqr: 最佳阈值。

from naie.datasets import data_reference from naie_cloud.feature_processing import data_flow

选择数据

如果是在NAIE平台上操作,则以下代码可通过点击菜单栏中“数据集”下的“选择数据”自动生成,再填写对应数据集和数据集实例参数。

dataset = "ts_data" dataset_entity = "adaptive_threshold" datareference = data_reference.get_data_reference(dataset, dataset_entity) dataflow = data_flow.create_data_flow(datareference) dataflow.to_pandas_dataframe()

resolve path ../../../../tests/testdata ts_data adaptive_threshold. Can't find dataset.json with path ../../../../tests/testdata\ts_data\adaptive_threshold\dataset.json, so ignore resolve path. resolve path ../../../../tests/testdata ts_data adaptive_threshold. Can't find dataset.json with path ../../../../tests/testdata\ts_data\adaptive_threshold\dataset.json, so ignore resolve path.

from naie.concept_drift_detection import AdaptiveThresholdSolution

df = dataflow.to_DataFrame() re = AdaptiveThresholdSolution(df, columns='total_load_energy_consumption', label_name='total_load_energy_consumption_label', id_column='dn') res = re.fit(win_size=384, stride=38) print('BEST_K_IQR:', '\n', res)

BEST_K_IQR:

0.3

NAIE SDK帮助文档汇总请参考:

概念漂移自适应阈值

Python

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:分享几个开源Java写的博客系统
下一篇:MongoDB中数据库的操作(增删改查)
相关文章