当前位置: 首页 > article >正文

Python异常检测-3Sigma

系列文章目录

Python异常检测- Isolation Forest(孤立森林)
python异常检测 - 随机离群选择Stochastic Outlier Selection (SOS)
python异常检测-局部异常因子(LOF)算法
Python异常检测- DBSCAN
Python异常检测- 单类支持向量机(One-Class SVM)


文章目录

  • 系列文章目录
  • 前言
  • 一、 3Sigma基本原理
  • 二、3Sigma实现步骤
  • 三、3Sigma优缺点
  • 四、python实现


前言

3Sigma原理,又称为拉依达准则或三西格玛准则,是统计学中的一个重要概念,尤其在质量控制和数据分析中应用广泛‌。

一、 3Sigma基本原理

3Sigma是指基于正态分布的特性,在一组正态分布或近似正态分布的数据中,约有99.73%的数据值会落在平均值加减三个标准差的范围内。如果一个数据的值大于平均值加上3倍标准差或者小于平均值减去3倍标准差,那么这个数据就可以被认为是异常值,3sigma准则实际就是将超过3sigma的数据视为异常点。
正态分布具有两个关键参数,均值(μ)和标准差(σ):

  • 均值(μ):均值,又称平均数,它反映了一组数据的集中趋势

  • 在这里插入图片描述

  • 标准差(σ):标准差是衡量数据变化程度的指标,他反映了数据的离散程度,计算公式如下:
    在这里插入图片描述

二、3Sigma实现步骤

3Sigma原则是一种常用的识别异常值的方法,具体操作步骤如下:

(1)计算数据的均值和标准差;

(2)计算数据与均值的差值大小,

(3)如果差值大于3倍的标准差,则可认为该数据点是异常值;基于计算的结果将数据标记为异常点。

该方法的优点是简单易行,但是它假设数据服从正态分布,如果数据不服从正态分布,则该方法可能会误判正常数据为异常值。

三、3Sigma优缺点

  1. 3Sigma原则的优点
  • 简单易懂:3Sigma原则基于标准差的观念,提供了一个直观且易于理解的判断标准。通过计算数据的平均值和标准差,并与3σ进行比较,可以快速判断数据是否处于正常范围内。
  • 科学性和客观性:由于3Sigma原则基于统计学原理,其判断具有一定的科学性和客观性。它依赖于数据的统计特性,而不是主观的、经验性的判断。
  • 有效检测异常值:根据正态分布的特性,大约有99.73%的数据落在u±3σ范围内。因此,当一个数据点落在这一范围之外时,可以初步判断为异常值。
  1. 3Sigma原则的缺点
  • 对样本量的依赖:3Sigma原则的有效性依赖于样本量的大小。当样本量较小时,使用3σ原则进行异常值检测可能不够可靠。因为小样本数据可能无法准确反映总体的分布特性。
  • 对非正态分布数据的限制:3σ原则主要适用于具有正态分布或近似正态分布特性的数据。对于非正态分布的数据,3Sigma原则可能无法有效检测异常值,甚至可能出现误判。

四、python实现

import pandas as pd
import numpy as np

# 定义3Sigma法则识别异常值函数
def three_sigma(Ser1):
    '''
    Ser1:表示传入DataFrame的某一列。
    '''
    rule = (Ser1.mean()-3*Ser1.std()>Ser1) | (Ser1.mean()+3*Ser1.std()< Ser1)
    index = np.arange(Ser1.shape[0])[rule]
    outrange = Ser1.iloc[index]
    return outrange
# 导入csv文件数据并读取一列数据后调用three_sigma
df = pd.read_csv('./data.csv',encoding= 'gbk')
three_sigma(df['counts']).head()


参考资料
统计学必知!「标准差&方差」之间不得不说的关系
[数学基础–均值、方差、标准差、协方差]
图像处理知识点5:基于3sigma的阈值分割(异常值判断)
【数据挖掘】3σ原则识别数据中的异常值(附代码)
异常值检测算法–3sigma模型和置信空间


http://www.kler.cn/news/359935.html

相关文章:

  • exchange_proxy exchange 安全代理
  • SqlDbx连接oracle(可用)
  • PDF.js的使用及其跨域问题解决
  • 力扣244题详解:最短单词距离 II 的多种解法与模拟面试
  • 携手并进,智驭教育!和鲸科技与智谱 AI 签署“101 数智领航计划”战略合作协议
  • Apache Doris简介
  • Items View 项目视图
  • 基于Spring Boot、Vue和MyBatis的前后端分离座位管理系统:增删改查功能入门指南
  • Clickhouse集群_Zookeeper配置的dataDir目录磁盘占有率接近100%时,该dataDir目录是否可以清理及如何清理的脚本
  • Java之继承抽象类用法实例(三十一)
  • PostgreSQL模板数据库template0和template1的异同点
  • 如何在 CentOS 7 上使用 Nginx 将 www 重定向到非 www
  • 全面了解 NGINX 的负载均衡算法
  • RabbitMQ系列学习笔记(三)--工作队列模式
  • 基于卷积神经网络和 Swin Transformer 的图像处理模型
  • Docker设置日志滚动
  • restrict是如何限定指针访问的?C语言必须用.c为扩展名吗?为什么C系语言很流行?哪些语言可以称为C系语言?
  • GLSL(OpenGL Shading Language)学习路线
  • Python | Leetcode Python题解之第498题对角线遍历
  • Ratkins Army Pack 死亡军团骑士战士游戏角色