美文网首页
截点的自动识别

截点的自动识别

作者: 巴拉巴拉_9515 | 来源:发表于2019-07-22 18:08 被阅读0次

    一、背景描述

    已知某特征数据随着日期变动,长期以来有两种处理截点的方法:

    (1) 人为判断“截点”的存在
    (2) 直接设置每天12点划分一个“截点”,然后运行某程序。

    人为判断的方式耗人力,直接划分的方式损耗计算机性能,因此急需一个自动划分截点的算法。

    截点识别是面向实时数据的,当新数据生成,算法需判断该点是否为“截点”。

    需要考虑以下内容:

    • 是否是截点,人为判断的主观因素比较强,因此一开始的标签设置决定后面截点的模样。

    • 不能因为曲线的频繁波动就划分很多截点,否则很可能短期内频繁启动程序,更耗性能。

    • 截点划分只能看到前面的数据,不知道后一天的走向

    • 需要设置阈值MAX_DAY, 保障如果MAX_DAY天数内,没有符合算法的“截点”生成,当天24点运行一次程序。

    二、算法设计

    一开始走过不少弯路,例如一维时序的周期性识别、峰值谷值的自动识别,...

    一番探索以后,认为这应该是一个有监督的算法。先人工对“截点”进行标记,然后训练二分类算法。

    (1) 特征提取

    取前n天的环比数据作为特征,例如第i天的特征数据为:
    [\frac{(x_{i-n}-x_{i-n-1})}{x_{i-n-1}},...,\frac{(x_{i-1}-x_{i-2})}{x_{i-2}}, \frac{(x_i-x_{i-1})}{x_{i-1}}]

    count为原始一维时序数列,特征1-8为前8天的环比值,1表示为截点。

    (2) 模型训练

    • 算法选型:分类算法很多,需进行最优分类的选型。
    • 特征工程优化:算法取前n天的环比数据作为特征,可配置n查看截点分类效果,选择最优n值。

    (3) 截点自动划分器

    配置信息:

    • MIN_TIME:保障短期内不多次触动某程序,要求两个截点的时间差距要大于MIN_TIME才可触发某程序。
    • MAX_DAY:如果MAX_DAY天数内,没有符合算法的“截点”生成,当天24点运行一次程序,避免长期不触发某程序。

    新数据count生成,首先判断是否为“截点”,如果是,判断距离上一个截点的时间间距是否大于MIN_TIME天,如果是,触发某程序;
    新数据生成,判断是否为“截点”,如果否,判断距离上一个截点的时间间距是否大于MAX_DAY,如果是,触发某程序,否则当天不允某程序。

    相关文章

      网友评论

          本文标题:截点的自动识别

          本文链接:https://www.haomeiwen.com/subject/ygrwlctx.html