前言
数据中如果有某个值偏离该列其他值比较离谱,那么就有可能是一个异常的值。在数据预处理中,自然需要把这个异常值检测出来,然后剔除掉,或者光滑掉,或者其他各种方法进行处理。
需要注意的是,本文仅介绍最为基础的单维度异常检测及处理方法,而在实际应用中更多用到的是多维度异常检测,这部分得到时结合具体项目学习。
异常值处理
1. 安装并导入包outliers并加载。
2. 生成一组用于测试的数据集(本例采用随机生成):
outlier计算偏离最远位置的点,它有两个参数:
- opposite:它值为TRUE或者FALSE时分别表示的是两个距离方向的极值点。
- logical:它的值同样为TRUE或者FALSE,分别表示用布尔值表示结果还是具体距离值表示。
4. 处理:
以上代码以每4个元素为单位进行均值光滑。
小结
实际项目中使用的更多是多维的,更高级的距离检测机制。比如异常点的检测还可以采用聚类的方法,落在簇之外的点就是异常点。
而且除了光滑,还有很多种异常值方式处理。一般来说和缺失值处理的方法相似,这里就不详细论述了。