我本来,就只是想随便看一下有啥正儿八经处理异常值的方法,看着看着心想,看都看了那随手记一下总结一下好了,结果…我…怎么这么多陌生名词…
都是在CSDN四处搜刮的信息,存在大段复制粘贴,本来只是写在记事本里,就没有贴原链接。
识别异常值
异常点检测,采用异常点检测算法对样本进行分析:
a.常用的异常点检测算法包括偏差检测,例如聚类,最近邻等;
b.基于统计的异常点检测算法,例如极差,四分位数间距,均差,标准差等;
c.基于距离的异常点检测算法,主要通过距离方法来检测异常点,遍历所有的数据点之间的距离,与大部分数据的距离都比较远的点,就是异常点,主要使用的距离度量方法有绝对距离(曼哈顿距离)、欧氏距离和马氏距离等方法;
d.基于密度的异常点检测算法,normal数据一定是处于密度集中的区域,abnormal数据一定是在相对稀疏的领域,考察当前点周围密度,可以发现局部异常点,例如LOF算法;
e.其他异常检测算法,如Isolation Forest算法。
方法1:Boxplot / 四分位数和四分位距。boxplot.stats()
方法2:当前值在平均值的±3个标准差之外。
方法3:(趋势数据)moving window,该点超出邻近n个点(window)的均值±3个标准差之外,则判断为异常值。
方法4