原标题:Python数据处理:异常值处理方法之3σ原则

一、3σ原则定义

异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称离群点,异常值的分析也称为离群点的分析。

在进行机器学习过程中,需要对数据集进行异常值剔除或者修正,以便后续更好地进行信息挖掘。

对于异常值的处理,3σ原则是最常使用的一种处理数据异常值的方法。那么,什么叫3σ原则呢?

3σ原则,又叫拉依达原则,它是指假设一组检测数据中只含有随机误差,需要对其进行计算得到标准偏差,按一定概率确定一个区间,对于超过这个区间的误差,就不属于随机误差而是粗大误差,需要将含有该误差的数据进行剔除。

其局限性:仅局限于对正态或近似正态分布的样本数据处理,它是以测量次数充分大为前提(样本>10),当测量次数少的情形用准则剔除粗大误差是不够可靠的。在测量次数较少的情况下,最好不要选用该准则。

3σ原则:

数值分布在(μ-σ,μ+σ)中的概率为0.6827

数值分布在(μ-2σ,μ+2σ)中的概率为0.9545

数值分布在(μ-3σ,μ+3σ)中的概率为0.9973

其中, μ为平均值,σ为标准差。

一般可以认为,数据Y的取值几乎全部集中在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性仅占不到0.3%,这些超出该范围的数据可以认为是异常值。

对于正态分布而言,数据大概分布如图所示:

深蓝色区域是距平均值小于一个标准差之内的数值范围。在正态分布中,此范围所占比率为全部数值之68%,根据正态分布,两个标准差之内的比率合起来为95%;三个标准差之内的比率合起来为99%。

二、3σ原则作用

异常值检测是机器学习中重要的一部分,它的任务是发现与大部分其他对象显著不同的对象。大部分机器学习过程都将这种差异信息视为噪声而丢弃。

三、Python实现步骤

具体步骤如下:

首先需要保证数据列大致上服从正态分布;

计算需要检验的数据列的平均值和标准差;

比较数据列的每个值与平均值的偏差是否超过3倍,如果超过3倍,则为异常值;

剔除异常值,得到规范的数据。

1

importnumpy

asnp

2importpandas aspd

3fromscipy importstats

4

5

6# 创建数据

7data = [ 1222, 87, 77, 92, 68, 80, 78, 84, 77, 81, 80, 80, 77, 92, 86,

876, 80, 81, 75, 77, 72, 81, 72, 84, 86, 80, 68, 77, 87,

976, 77, 78, 92, 75, 80, 78, 123, 3, 1223, 1232]

10df = pd.DataFrame(data,columns = [ 'value'])

11

12# 计算均值

13u = df[ 'value'].mean

14

15# 计算标准差

16std = df[ 'value'].std

17

18print(stats.kstest(df, 'norm', (u, std)))

19# 此时,pvalue > 0.05,不拒绝原假设。因此上面的数据服从正态分布

20print( '均值为:%.3f,标准差为:%.3f'% (u,std))

21print( '------')

22

23

24# 定义3σ法则识别异常值

25# 识别异常值

26error = df[np.abs(df[ 'value'] - u) > 3*std]

27# 剔除异常值,保留正常的数据

28data_c = df[np.abs(df[ 'value'] - u) <= 3*std]

29

30# 输出正常的数据

31print(data_c)

32# 输出异常数据

33print(error) 返回搜狐,查看更多

责任编辑:

python异常数据处理_Python数据处理:异常值处理方法之3σ原则相关推荐

  1. python处理异常值循环_Python数据处理:异常值处理方法之3σ原则

    原标题:Python数据处理:异常值处理方法之3σ原则 一.3σ原则定义 异常值是指样本中的个别值,其数值明显偏离其余的观测值.异常值也称离群点,异常值的分析也称为离群点的分析. 在进行机器学习过程中 ...

  2. python异常捕获_Python 异常的捕获、异常的传递与主动抛出异常操作示例

    本文实例讲述了Python 异常的捕获.异常的传递与主动抛出异常操作.分享给大家供大家参考,具体如下: 异常的捕获 demo.py(异常的捕获): try: # 提示用户输入一个整数 num = in ...

  3. python缺失数据处理_python 缺失值处理的方法(Imputation)

    一.缺失值的处理方法 由于各种各样的原因,真实世界中的许多数据集都包含缺失数据,这些数据经常被编码成空格.nans或者是其他的占位符.但是这样的数据集并不能被scikit - learn算法兼容,因为 ...

  4. python文本数据处理_python 数据处理 对txt文件进行数据处理

    原博文 2019-10-19 17:30 − 数据: 对txt文件进行数据处理: txt_file_path = "basic_info.txt" write_txt_file_p ...

  5. python编程数据处理_python数据处理实战(必看篇)

    一.运行环境 1.python版本 2.7.13 博客代码均是这个版本 2.系统环境:win7 64位系统 二.需求 对杂乱文本数据进行处理 部分数据截图如下,第一个字段是原字段,后面3个是清洗出的字 ...

  6. python csv数据处理_Python数据处理(1) —CSV文件数据处理

    断断续续使用Python编程已接近半年时光,尽管目前使用的功能相对单一(主要用于传感器实验数据的处理),但仍然发现,某些时候使用时会一时半会想不起来了,归结原因是"不熟悉":因此, ...

  7. python画误差棒_Python数据处理从零开始----第四章(可视化)(3)散点图和误差棒...

    目录 Python数据处理从零开始----第四章(可视化)③散点图和误差棒 Python数据处理从零开始----第四章(可视化)④误差图 =============================== ...

  8. python与数据处理_python数据处理:数据合并和Reshaping

    本文资料来自于: Python for Data Analysis: Chapter5, 7, 12 文中实例查看地址:http://nbviewer.jupyter.org/github/RZAmb ...

  9. python数据记录_python 数据处理中的记录

    截取某段时间内的数据,如果以date为index,则: data.index = pd.to_datetime(data.index) data = data[(data.index >=pd. ...

最新文章

  1. Spring Boot定时任务应用实践
  2. Repeater控件最后一笔记录高亮显示
  3. 信息系统项目管理师培训感言
  4. loadrunner性能测试步骤
  5. view如何接受json_如何将你的 ThinkJS 项目部署到 ZEIT 上
  6. 用DELPHI中Canvas特性开发图形软件
  7. 亿级流量架构服务限流,写得太好了!
  8. 关于大型网站技术演进的思考(十)--网站静态化处理—动静整合方案(2)
  9. 线性代数学习之行列式
  10. 信息系统监理师考试知识点整理
  11. CAD插件的安装和自动加载dll、arx
  12. 【手拉手 带你准备电赛】使用定时器中断更改PWM占空比
  13. stata判断变量是不是唯一标识的命令?
  14. 基于ibeacons三点定位(微信小程序)
  15. “21 天好习惯”第一期-7
  16. python数据分析之pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
  17. Verdi基础知识整理
  18. 语音专题第一讲,麦克风阵列的语音信号处理技术
  19. 笔耕不辍,学习习惯?兴趣爱好?源于对真知的热爱?
  20. Hadoop格式化后出现异常

热门文章

  1. Excel实例:数组公式和函数
  2. Hi3531DV200 Hi3535AV100 Hi3559AV100 Hi3519AV100性能比对选型参考
  3. 写一份自动售票机各模块的测试用例
  4. 添加老师信息的php学生信息管理,PHP+MySQL学生信息管理系统的开发与设计
  5. 「产品读书」硅谷增长黑客实战笔记
  6. C语言运算符优先级和口诀
  7. Uni-app的webview,H5页面在微信小程序中webview再跳回小程序的解决方案
  8. 2022第三届中国汽车玻璃创新国际峰会
  9. 华为云.qp文件恢复到数据库
  10. 名字测试匹配度软件,姓名配对打分(名字匹配度情侣测试)