异常值处理

2023-11-06

异常值处理是数据预处理中的一个重要步骤,随着大数据时代的到来,异常值处理也越来越重要。本文主要总结了一些常用的判断异常值的方法。
1、3-σ准则
要求数据服从正态分布,认为大于μ+3σ或小于μ—3σ的实验数据值作为异常值,其中μ为数据均值,σ为数据标准差
matlab代码示例

%异常值处理
%采用3西格玛方法
clc;
clear all;
data0=xlsread('C:\Users\Administrator\Desktop\数据预处理\data1703.xlsx','b2:i266283');%读取原始数据

%变量1的异常值处理
bl1=data0(1:237,1);
[m,n]=size(bl1);
ave=mean(bl1);%均值
sigma=sqrt((bl1'-ave)*(bl1-ave)/m);%标准差
fangcha=sigma^2;%方差
jicha=max(bl1)-min(bl1);%极差

sx=ave+3*sigma;
xx=ave-3*sigma;
ycz=[];
zcz=[];
s=1;
s1=1;
for i=1:m
    if bl1(i,1)<xx||bl1(i,1)>sx
        ycz(s,1)=bl1(i,1);
        ycz(s,2)=i;
        s=s+1;
    end
    if bl1(i,1)<sx&&bl1(i,1)>xx
        zcz(s1,1)=bl1(i,1);
        zcz(s1,2)=i;
        s1=s1+1;
    end
end

2、箱线图法
简单箱线图由五部分组成,分别是最小值、中位数、最大值和两个四分位数。第一四分位数Q1:又称“下四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。中位数F:又称第二四分位数(Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。第三四分位数:又称“上四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。
箱线图示意图
异常值被定义为小于Q1-1.5IQR或大于Q3+1.5IQR的值。虽然这种标准有点任意性,但它来源于经验判断,经验表明它在处理需要特别注意的数据方面表现不错。
matlab代码示例

%异常值处理
%采用箱线法
clc;
clear all;
data0=xlsread('C:\Users\Administrator\Desktop\数据预处理\data1703.xlsx','b2:i266283');%读取原始数据
[m,n]=size(data0);
w1=round(m/4);  %第一四分位位置,
%m1=m/2%中位数位置,
w3=round(3*m/4);%第三四分位位置

%变量1的异常值处理
bl1=data0(:,1);
[a1,b1]=sort(bl1);%[a,b]=sort(x);是从小到大排列,a是排序后结果,b是a结果中各元素的原始位置。
q11=a1(w1,1);    %第一四分位数
q13=a1(w3,1);    %第三四分位数
qr1=q13-q11;       %四分位距
sx1=q13+1.5*qr1;   %上限
xx1=q11-1.5*qr1;   %下限
ycz1=[];%异常值矩阵
s1=1;
for i=1:m
    if bl1(i,1)>sx1||bl1(i,1)<xx1
        ycz1(s1,1)=bl1(i,1);
        ycz1(s1,2)=i;
        s1=s1+1;
    end
end

3、格拉布斯检验法
格拉布斯检验法步骤
若检出了一个异常值,对除去已检出异常值后余下得数值继续用格拉布斯检验法检验,直到不能检出异常值为止。
4、马氏距离法
下图是方法步骤
马氏距离法
下图是卡方分布表
卡方分布
matlab代码示例

%异常值处理
%采用马氏距离法
clc;
clear all;
data0=xlsread('C:\Users\Administrator\Desktop\数据预处理\data1703.xlsx','b2:i241');%读取原始数据
ave=mean(data0);%如果A是一个矩阵,mean(A)将中的各列视为向量,把矩阵中的每列看成一个向量,返回一个包含每一列所有元素的平均值的行向量。
[m,n]=size(data0);
%计算矩阵协方差
xfc=cov(data0);
%xfcni=inv(xfc);%计算矩阵协方差的逆

delta=zeros(m,n);
for i=1:m 
  delta(i,:)=data0(i,:)-ave(1,:);%计算样本与均值的差值
end
%deltazz=delta';%n*m,样本与均值的差值的逆

%计算马氏距离
msjl=zeros(m,1);
for i=1:m
    msjl(i,1)=delta(i,:)/xfc*(delta(i,:)');
end
s=0;
for i=1:m
    if msjl(i,1)>2.18%置信度为0.975,自由度为8,对应的卡方值
        s=s+1;
    end
end

5、其他方法
可以参考文档《GBT 4883-2008 数据的统计处理和解释正态样本离群值的判断和处理》

注:部分内容参考了其他博主的文章,在此表示感谢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

异常值处理 的相关文章

  • JVM性能调优实战

    JVM调优调什么 JVM 调优是一个系统而又复杂的过程 但我们知道 在大多数情况下 我们基本不用去调整 JVM 内存分配 因为一些初始化的参数已经可以保证应用服务正常稳定地工作了 而且一般情况下 就算出现了 也是架构师级别的去处理 实际上
  • c++ to_string、stoi()、atoi()使用

    1 to string 包含在 include
  • SQL连续登录4天及以上的用户

    需求 连续登录4天及以上的用户 有一个表login test 求出连续登录4天及以上的用户 方法一 排序窗口函数 row number select row number over partition by user id order by
  • 探讨linux进程的三种时间(real time, system cpu time, user cpu time)的实现

    APUE 3 9节中关于系统调用read给出了不同大小的缓冲区会导致读取效率的差异 这里stevens用三种时间表示读取文件过程所花费的时间 这三种时间分别为真实 时钟时间 real clock time 系统cpu时间 system cp
  • 前端知识学习

    以下是一个使用Angular 13实现的示例代码 实现了当div出现滚动条时给div底部加上阴影效果 并随着滚动条的拖动保留阴影效果 当滚动条拉到最后时 阴影效果消失 首先 在你的组件的HTML模板中添加以下代码 div class con
  • 最适合初学者使用的react框架—UMI.js

    介绍 最近接触到了一个新的react框架 大大省略了我开发的时间 而且学起来和上手都挺容易的 但论坛上关于这个框架的介绍并不多 我就大概介绍一下这个框架并写一些使用心得 1 什么是umi 它是由dva的开发者云谦编写的一个新的React开发
  • 以太坊存储分析(整合)

    分析背景及概述 更加深入地了解以太坊的内部存储机制 更好地实现自己的区块链 存储是一个不能缺少的模块 但是存储又不是单一的数据保存 它涉及到了以太坊核心的编码 数据结构 中间还有缓存的部分 最后才通过leveldb 一种key value数
  • 若依tab权限问题

    普通的按钮直接用v hasPermi就可以了 但是这个有个问题 这个东西相当于v show 而像el tab pane就需要v if才能把标签头隐藏 所以需要以下代码 v if checkPermi xxx xxx xxx import c
  • Leetcode算法题:旋转数组问题(全)总结 思路+题解+代码

    旋转数组问题总结 标签 二分查找 翻转数组 笔者在刷LeetCode时多次遇到旋转数组问题 将其各类问题加以总结 从简入深整理出关于旋转数组的全部问题题解思路和代码 希望对读者有所帮助 题目 189 旋转数组 给定一个数组 将数组中的元素向
  • RuoYi -- 字典的前端调用

    前言 记录时间 2022 5 18 内容 字典可以实现枚举联动 前端怎么写去调用呢 我参考company之前项目里的 联赛赛事管理 部分 整理如下 主要包含html js的更新 备注 由于记录时并非边操作边记录 而是抽取往期代码加上自己的理
  • qt之页面布局

    QTlayout概述 Qt的布局管理系统提供了强大的机制来自动排列窗口中的所有部件 确保它们有效地使用空间 Qt包含了一组布局管理类 从而在应用程序的用户界面中对部件进行布局 比如QLayout的几个子类 这里将它们称作布局管理器 所有QW
  • 变差函数拟合(球状、指数、高斯)例题分析matlab

    解决问题的代码 学习笔记 clear clc n 20 h 0 2 f x 1 3 exp 2 x x linspace 0 n h n 第一问 y0 f x 原数据 y f x 0 1 rand size x 加入高斯噪音的数据 Exva
  • 解决报错:Cannot read properties of undefined (reading read ) at FileReader.reader.onload

    当我们使用xlsx插件实现excel导入功能时发现控制台报错 Cannot read properties of undefined reading read at FileReader reader onload 查询后发现是xlsx版本
  • 接口多实现类的动态调用

    一个接口在不同场景 需要有不同的实现类 实现动态调用 定义接口 创建接口实现类 定义支付方式接口 支付方式接口 public interface PaymentService 扫码支付 param transaction return th
  • python 执行js 提示window未定义_execjs执行js出现window对象未定义时的解决

    最近在开始学习js逆向 里面很重要的一个方法就是把js代码扣下来用python模拟执行 但是发现js里面有window对象时用execjs执行 当使用node js环境时会出现window对象未定义的情况 记录下在网上找到的解决方案 1 当
  • 程序员是如何思考的?

    1975 年 弗雷德里克 布鲁克斯 Frederick Brooks 出版了软件行业的名著 人月神话 他给出了一个统计结果 优秀程序员的开发效率是普通程序员的 10 倍 40 多年过去了 这个数字得到了行业的普遍认同 成为优秀程序员是很多程
  • 分析常见数据结构在内存中的存储形式

    本文会在x64dbg中分析vector list map的内存存储特点 目录 分析vector在内存中的存储形式 x32dbg分析vector数组 总结一下vector的内存布局 分析 list 在内存中的存储形式 x32dbg分析 lis
  • 349. Intersection of Two Arrays

    class Solution public vector
  • 微信小程序 禁止ios页面下拉下滑滚动 出现空白的情况

    项目需要做了一个图片拖动指定组件上删除 和排序的功能android测试正常 ios会出现拖动图片页面也跟着下滑的尴尬情况 查文档下拉刷新配置默认是关闭的 后经查找文档发现在本页面page json 配置项可通过 disableScroll

随机推荐

  • 最好的英文词典

    辞典对于学外语的作用 怎么强调也不过分 经常接触英语的人都知道 遇到生词不可怕 可怕的是遇到认识的单词 又不明白这句话什么意思 这个时候 辞典的作用就发挥出来了 今天一位朋友问我一句英文的意思 这是纽约时报关于作家塞林格的一个标题 Stil
  • MySQLdb._exceptions.OperationalError: (1045, “Access denied for user ‘root‘@‘localhost‘ (using passw

    migrate数据到数据库时遇到的错误 MySQLdb exceptions OperationalError 1045 Access denied for user root localhost using password NO 解决方
  • Vscode配置C/C++环境

    2022年9月20日测试配置环境 运行情况良好 第一篇文章 不足之处 敬请海涵 借鉴了一些大神的分享VSCode配置C C 环境 知乎 里面有一些详细的安装教程 我就直接省去了安装的步骤 1 官网下载Vscode 一直点击下一步 直到安装在
  • 二进制安全虚拟机Protostar靶场(3)溢出控制程序指针,基础知识讲解 Stack Three,Stack Four

    前言 这是一个系列文章 之前已经介绍过一些二进制安全的基础知识 这里就不过多重复提及 不熟悉的同学可以去看看我之前写的文章 二进制安全虚拟机Protostar靶场 安装 基础知识讲解 破解STACK ZERO https blog csdn
  • 如何使用 UserAccountControl 标志操纵用户帐户属性

    转载 http support microsoft com kb 305144 概要 在打开用户帐户的属性后 单击帐户选项卡 然后选中或清除 帐户选项 对话框中的复选框 则会将数值分配给 UserAccountControl 属性 分配给该
  • eclipse设置编码格式UTF-8,代码提示设置,显示代码行号,设置字体类型和大小,修改代码签名,配置jdk

    图1 设置编码格式 图2 qwertyuioplkjhgfdsazxcvbnm 图3 显示代码行号 图4 设置代码的字体类型和大小 图5 设置Console 控制台 的字体类型和大小 图6 修改代码签名 图7 eclipse配置JDK 若需
  • k8s集群中部署服务之部署描述文件准备

    微服务部署描述文件Deploy yaml 一 各微服务创建部署描述文件 1 1 mall auth server apiVersion apps v1 kind Deployment metadata name mall auth serv
  • 编译课设 (词法分析+LR1语法分析+语法制导翻译(四元式生成))

    代码已上传至 Github 完整的 VS2019 项目已上传至百度云 提取码 lql1 目录 源语言 语义动作 中间代码定义 整体框架 声明 语句 i f if if 语句
  • JS时间戳和时间之间转换

    一 时间转换时间戳 var date new Date 时间对象 var str date getTime 转换成时间戳 二 时间戳转换为时间 1 转换成形如 2018 年 1 月 4 日 14 00 00 格式 function getD
  • esp32环境安装教程---arduino IDE

    前言 1 最近突然对esp32感兴趣了 源于逛油管的时候 总是看到很多大佬使用esp32cam进行网络图传 做摄像头 个人比较感兴趣 在环境安装过程遇到了很多坑 所以在此跟大家分享一下 2 注意 如果没有魔法的人 本文不用看 因为对你没帮助
  • 使用Javascript(js)技术实现动态时钟效果—北大青鸟

    效果图 代码
  • linux命令大全 find

    参考 linux命令大全 程序员工具箱 1 命令名 find 在某个目录下搜索文件 2 使用样例 在 path 目录下递归找到名字后缀为 access log 的文件 find path name access log 在 path 目录下
  • pandas删除索引具体位置的数据

    import pandas as pd import numpy as np 想删除索引是3 和4的数据 df pd DataFrame 0 我 1 你 2 她 3 我们 5 你们 columns list AB df t df loc d
  • 浪潮 服务器数据安全管理系统,浪潮SSC运维安全管控系统

    浪潮SSC运维安全管控系统提供精细管控 运维无忧的数据中心安全解决方案 统一账号 数据中心内所有各种服务器 数据库 网络设备 中间件 业务系统的账号作为从账号 浪潮SSC的账号作为主账号 进入数据中心的每个运维人员对应一个主账号 主账号用来
  • 卷积:kernel size/padding/stride

    卷积的原理 卷积尺寸变化 输出尺寸 输入尺寸 filter尺寸 2 padding stride 1 宽和高都是这么计算的 输入图片大小为200 200 依次经过一层卷积 kernel size 5 5 padding 1 stride 2
  • 带你解决java内存爆炸和CPU100%的问题

    文章目录 java 内存爆炸 CPU100 问题分析 定位与解决 背景 堆内存溢出 问题思路整理 堆外内存分析 问题思路整理 CPU 100 问题排查 引发原因 java 内存爆炸 CPU100 问题分析 定位与解决 背景 今天给java开
  • Unity半透明物体+投射阴影+接受阴影

    前置 水流动效果 透明 物体实现半透明有透明度测试和透明度混合两种方式 不同方式接受和投射阴影的方式有所差别 透明度测试阴影效果图 正方体的阴影一部分打在了水平面上 一部分在白色平面上 由于透明度测试使得水平面的右半部分为完全透明 所以白色
  • CNVD证书获得及要求

    CNVD证书获得及要求 前言 CNVD证书 简介 要求 挖掘思路 定位目标 搜索案例 漏洞类型 证书展示 文件上传 逻辑漏洞 弱口令 ps 前言 4月份利用闲时时间对学校资产进行了一波渗透测试 发现蛮多的漏洞 这其中就发现了这次证书的漏洞厂
  • 2020-09-10 nginx 流转发 ftp 服务器报错: GnuTLS 错误 -110

    ginx 流转发 ftp 服务器报错 GnuTLS 错误 110 报错信息 filezilla ftp tls 连接 ftp 服务器没问题 访问 nginx 服务 转发到ftp 服务器会报错 如下 错误 GnuTLS 错误 110 位于 g
  • 异常值处理

    异常值处理是数据预处理中的一个重要步骤 随着大数据时代的到来 异常值处理也越来越重要 本文主要总结了一些常用的判断异常值的方法 1 3 准则 要求数据服从正态分布 认为大于 3 或小于 3 的实验数据值作为异常值 其中 为数据均值 为数据标