数据平均值:一般在正太分布的情况下,平均值可以显示一个比较准确的数据水平,及数据一般分布在平均值周围,但如果数据分布不是正太分布,可能会陷入数据平均值陷阱,这时候平均值不能成为代表值
中位数和平均值可以组合使用
以平均值为中心,在向其左右各扩大1个标准差的范围内,也会包含约占整体三分之二的数据(满足正太分布的条件下)
标准差stdev()
偏差值的计算公示:
image.png
=CORREL函数,是求俩组数之间相关系数的一个函数
STL数据拆解法:
如果时间序列数据是期性数据,可使用STL算法将时序数据拆成趋势项,周期项和余项,即每个时刻
的时序数据等于当前时序趋势项,周期项和预项的和(或者乘)
趋势项(T_v):涵盖了这个时序数据的趋势变化
周期项(S_v):涵盖了时序数据的周期变化;
余项(R_v):表示时序数据出去趋势和周期项后周曦向后的日常的波动变化
一般使用STL需要确定2个点
确定数据周期,外卖业务的一个常规周期为7天,在周一至周五又可以将数据周期缩短为1天,拆分规则,是选择加法方式还是乘法方式
加法方式:原始数据=平均季节数据+趋势数据,+余项这种方式,随着时间的推移季节数据不会有在七天为一大周期
加法方式: y原始数据=平均季节数据+趋势数据+余项这种方式,随着时间的推移季节数据不会有太大的变化,在以前为一大周的业务数据更合适这样的拆分方式
四,多变量数据异常识别
所谓多变量数据异常识别是指,不只是从一个特征去判断数据的异常,而是在多个特征下来判段时间其是否异常,多变量异常数据识别的方法很多,比如聚类模型,孤立森林模型,one-class svm模型等。下面主要介绍简单高效,更容易使用的鼓励森铃模型。
1、孤立森林
孤立森林是一个可扩散到多变量的快速异常检测方法,iforst适用于连续数据的异常检测,将异常定义为‘容易孤立的离群点--可以理解为分布稀疏且李密度高的群体较远的点,用统计学来解释,在数据空间里面,分布稀疏的区域表示数据发生在区域的概率很低,银耳可以人为落在这些区域里的数据是异常的’
点B 跟其他数据比较疏离可能很少的次数就可以把他切分出来,点A跟其他数据点聚在一起,可能需要更多的次数CIA按哪个把他切分出来
我们把数据从一维扩展到俩位,同样的,我们沿着俩个坐标轴进行随机切分,尝试把下图中的点‘A’和点‘B’,分别切分出来,我们先随机选择一个特征维度,在这个特征的最大值和最小值之间的随机选择一个值,按照跟特征值的大小关系将数据进行左右切分
然后,在左右俩组数据中,我们重复上述步骤,在随机的按某个特征维度的取值把数据进行细分,知道无法细分,及:只剩下一个数据带你,或者剩下的数据全部相同
跟先前的例子类似,直观上,点B跟其他数据点比较疏离,可能只需要很少的几次操作就可以将他细分出来,点A需要的切分次数可能会更多一些
上面其实就是isololation Forest(IF)的核心概念,而具体的if采用二叉树去对数据进行切分,数据点在二叉树中的所处的深度反映了数据‘疏离’程度
训练:抽取多个样本,构建多颗二叉树
预测:综合多颗二叉树的结果,计算每个数据点的异常分值
训练:构建一颗itree时,先从全量数据中抽取一批样本,然后随机宣泄一个特征作为起始节点,并在该特征的最大致和最小值之间随机选择一个值,将样本找那个小于改取值的数据划在作风之,大于等于该取值的划到右分支
然后,在左右俩个分支数据中,重复上述步骤,知道满足如下条件
数据不可再分,即,只包含一条数据,或者全部数据相同
预测:根据估算他在每克itree中路径长度(也可以叫做深度),计算数据*的异常分值,通常这个异常分值越小约异常
isolation forest算法主要有俩个参数,一个是二叉树的个数,另一个是训练蛋壳itree时候取样本的数目
当设定100棵树,抽样样本数为256条的时候,if在大多数情况下就已经可以去的不错的效果,这也体现了算法的简单高效
具体Python实现如下:
下图是用鼓励的森林你和数据识别异常的可视化图,左边表示原始数据的呈现,右边表示鼓励森林异常事变(黑色表示异常黄色表示正常)
网友评论