• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

5.3 异常值处理

武飞扬头像
kiritobryant
帮助1

异常值是指样本中的个别值,其数值明显偏离它所属样本的其余观测值,这些数值是不合理的或错误的。

出现异常值的原因

每当我们遇到异常值时,处理它们的理想方法就是先找出出现这些异常值的原因。下面,常见出现异常值的原因,具体如表所示

异常值类型

相关说明

数据输入错误

人为错误(如数据收集,记录或输入过程中引起的错误)可能导致数据异常。例如:客户的年收入为100000元。无意之中,数据输入操作员在图中增加了一个零,变成了1000000元,这样就高出10倍,该值则为异常值

测量误差

由于测量仪器发生故障导致的,该类异常值是最常见的。例如,有10台称重机,其中9个是完好的,1个是有缺陷的,若是使用有缺陷的称重机测量重量,则会高于/低于该组中的其他人的重量,该重量值即为异常值

故意异常值

该类异常值通常出现在涉及敏感数据的自我报告的度量中。例如:青少年通常会报告他们消耗的酒精量,然而只有一小部分青少年会报告实际消耗的酒精量,这里的实际消耗的酒精量可能看起来像是异常值

数据处理错误

当进行数据挖掘时,我们会从多个数据源中抽取数据,由于某些操作或抽取错误可能会导致数据集中出现异常值

采样错误

当测量跳水运动员的身高时,也测量了篮球运动员的身高,并把篮球运动员的身高记入到样本中,这样会导致样本中的数据集出现异常值

自然异常值

当异常值不是人为原因造成的,那么就有可能是自然异常值。例如,一家知名的保险公司的前50名财务顾问的表现能力都强于其他人群,关于表现能力强弱的值即为自然异常值

检测异常值 

假设,数据集中的大多数实例都是在正常的前提下,异常值的检测方法通常分为三大类,即无监督式异常值的检测、监督式异常值的检测以及半监督式异常值的检测,具体介绍如下:

无监督式异常值的检测,通过寻找与其他数据最不匹配的实例来检测出未标记测试数据的异常。

监督式异常值的检测,需要一个已经被标记“正常”与“异常”的数据集,并涉及到训练分类器,用来区分正常值和异常值。

半监督式异常值的检测,根据一个给定的正常训练数据集创建一个表示正常行为的模型,将检测的偏离正常行为的对象视为异常值。

检测异常值

一般异常值的检测方法包含基于统计的方法、基于聚类的方法、以及一些专门检测异常值的方法等异常值检测的方法。

学新通

 删除包含异常值的记录

不少人在处理异常值时,习惯于使用简单粗暴的删除方法,但是这并不适用于处理所有异常值,若是通过删除的方法处理异常值,有时会使你错过真正的规律。如果想要删除数据,一定需要有合理的理由。当出现异常值时,需要先搞清楚是什么原因导致的异常值,然后考虑如何去处理。

不宜删除异常值的情况,具体如下:

(1)通常情况下,数据中出现的异常值较少。如果采集的数据中有超过30%的异常值数据,那么意味着需要进一步研究数据。

(2)如果异常值存在且代表了一种真实存在的现象,那就不可随意删除。例如,调查100个村的胃癌发病率,可能确实有个别村庄的发病率远远高于其它村,这时就不能随意删除,而是要把这些异常点纳入,重新拟合模型,研究其规律。

(3)分析数据的结果至关重要,因此即使很小的变化也会很重要。例如,可以更好地放弃关于人们最喜欢电视节目的异常值,而不是放弃关于飞机封条失效的温度。

通过Kettle工具,去除文件temperature.txt中的异常值。

现在有这样一份记录一天中不同时间温度的数据文件temperature.txt,其中包含时间和温度(摄氏度)两个字段,具体内容如图所示(展示部分数据)

学新通

 通过使用Kettle工具,创建一个转换delete_anomalous _value,并添加“文本文件输入”控件、“过滤记录”控件、“空操作(什么也不做)”控件以及Hop跳连接线。

学新通

双击“文本文件输入”控件,进入“文本文件输入”配置界面。

先单击【浏览】按钮,选择要去除异常值的文件temperature.txt,然后单击【增加】按钮,将要去除异常值的文件temperature.txt添加到“文本文件输入”控件中。

单击“内容”选项卡;清除分隔符处的默认分隔符“;”,单击【Insert TAB】按钮,在分隔符处插入一个制表符;取消勾选“头部”复选框,若不取消,在进行数据抽取操作时会排除文件第一行的数据。

单击“字段”选项卡;根据文件temperature.txt的内容添加对应的字段名称,并指定数据类型。

单击【预览记录】按钮,查看文件temperature.txt的数据是否成功抽取到文本文件输入流中。学新通

双击“过滤记录”控件,进入“过滤记录”配置界面。

学新通

在“条件”处设置过滤的条件,由于文件temperature.txt中time为6:30的温度是137摄氏度,不在非异常值的范围内,因此属于异常值,我们应该将过滤字段设置为temperature、过滤值为137。

在“发送true数据给步骤:”处的下拉框中选择“空操作(什么也不做)2”,将异常值放在“空操作(什么也不做)2”控件中;在“发送false数据给步骤:”处的下拉框中选择“空操作(什么也不做)”,将非异常值放在“空操作(什么也不做)”控件中。

运行创建的delete_anomalous_value转换。

学新通

 查看文件temperature.txt是否去除了异常值

单击“空操作”控件,再单击执行结果的“Preview data”选项卡,查看是否去除了异常值。学新通

 至此,我们完成异常值的处理。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggahkg
系列文章
更多 icon
同类精品
更多 icon
继续加载