python剔除不合理值:3σ原则

这篇具有很好参考价值的文章主要介绍了python剔除不合理值:3σ原则。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  3σ原则:

        该准则仅局限于对正态或近似正态分布的样本数据处理,此外,当测量次数少的情形用准则剔除粗大误差是不够可靠的。

python剔除不合理值:3σ原则

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

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

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

代码实现

假如你的手头有一个dataframe,

1.首先需要做的是对数据的每一列进行KS检测,看各列数据是否在大致上服从正态分布

import pandas as pd
import numpy as np

# KS检验
def KsNormDetect(df):   # 输出结果是服从正态分布的数据列的名字
    from scipy.stats import kstest 
    list_norm_T = []   # 用来储存服从正态分布的数据列的名字
    for col in df.columns:
        u = df[col].mean()               # 计算均值
        std = df[col].std()              # 计算标准差
        res=kstest(df[col], 'norm', (u, std))[1]  # 计算P值
        if res<=0.05:                        # 判断p值是否服从正态分布,p<=0.05 则服从正态分布,否则不服从
            print(f'{col}该列数据服从正态分布------')
            print('均值为:%.3f,标准差为:%.3f' % (u, std))
            print('-'*40)
            list_norm_T.append(col)             
        else:                                # 这一段实际上没什么必要
            print(f'!!!{col}该列数据不服从正态分布**********')
            print('均值为:%.3f,标准差为:%.3f' % (u, std))
            print('*'*40)
    return list_norm_T

上述操作帮我们确定了数据中大致服从正态分布的列

2.3σ异常点检测(仅对服从正态分布列进行操作),删除异常值

# 对待处理数据中心服从正态分布的数据列
def three_sigma(Ser1):  # Ser1:表示传入DataFrame的某一列
    rule = []
    rule = (Ser1.mean()-3*Ser1.std()>Ser1) | (Ser1.mean()+3*Ser1.std()< Ser1)
    out = Ser1.index[rule]
    return out          # 返回落在3sigma之外的行索引值

def delete_out3sigma(data, list_norm):  # data:待检测的DataFrame;list_norm:服从正态分布的数据列名 
    out_index = []                      # 保存要删除的行索引
    for col in list_norm:            # 对每一列分别用3sigma原则处理
        index = three_sigma(data[col])
        out_index += index.tolist()
    delete_ = list(set(out_index))  # 去除 out_index 中的重复元素
    print(f'\n所删除的行索引共计{len(delete_)}个:\n',delete_)
    data.drop(delete_,inplace=True) # 根据 delete_ 删除对应行的数据
    return data

上述操作先是确定了每一列(服从正态分布)中落在3σ范围外的异常值所属index值,接着根据索引删除异常数据所在行。

实际效果

首先判断原数据各列是否服从正态分布,第一个函数返回值是一个包含列名的列表

python剔除不合理值:3σ原则

调用 delete_out3sigma()函数,打印异常值的索引,并返回删除异常值所在行后的dataframe

python剔除不合理值:3σ原则

 参考

【PYTHON 机器学习】正态分布检验以及异常值处理3Σ原则

三西格玛准则文章来源地址https://www.toymoban.com/news/detail-431975.html

到了这里,关于python剔除不合理值:3σ原则的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用python中的pymrmr模块来进行特征提取,深入学习mRMR(最大相关最小冗余准则)

    文章目录 系列文章目录 前言 一、 最大相关最小冗余准则(mRMR)在python对应的库 ? 二、 如何安装和使用prmrmr? 1. 新建一个环境 2. 安装pymrmr库 3.如何使用pymrmr? pymrmr实验结果 总结 最大相关最小冗余准则(maximal relevance andminimal redundancy,mRMR),其核心思想是从给 定的特征集

    2024年02月06日
    浏览(30)
  • 小程序连接 域名不合法

    一、背景。   今天搞了一个简单的小程序,在请求后端的时候,没有显示数据,看了一下问题原来是域名不合法,下面就是解决方式。 二、解决方式。 1.点击详情。 2.勾选不校验合法域名....  3.再次编译一下就可以了。 三、总结。 业务强 才是真的强 xdm 加油 

    2024年02月11日
    浏览(24)
  • 决策准则之赫维兹准则、萨维奇遗憾准则、拉普拉斯不充分理由准则、沃尔德准则

    赫维兹准则是一种决策准则,用于在不确定条件下进行决策。考虑决策者对不同结果的态度,通过调整“乐观度参数”(optimism parameter)来权衡最优和最坏结果的可能性。 “乐观度参数”在0到1之间取值: 当乐观度参数为0时,决策者选择最坏的结果 当乐观度参数为1时,决策者

    2024年02月12日
    浏览(28)
  • 阿里云短信服务开通(只限于测试,国内短信)

    前提: 需要有阿里云的密钥–》AccessKey ID 和 AccessKey Secret 是您访问阿里云 API 的密钥,具有该账户完全的权限 第一步:搜索阿里云短信产品 第2步:点击免费开通 第3步:开通国内信息 第4步:申请签名 第5步:申请模板 第6步:参考阿里云接口调用文档,实现对短信服务接口

    2024年02月16日
    浏览(29)
  • git push提示电子邮件不合法

    解决方法 1、如果代码还未commit成功,先备份变更代码,然后撤销所有变更,如果已经成功commit则不用管 2、根据提示依次进行下列操作 1、git config user.name ‘用户名’ -g 2、git config user.email ‘邮箱名称’ -g 3、git-m (注:-m前边没有空格) 接下来根据提示,输入对应内容 1、

    2024年02月05日
    浏览(41)
  • 前端异常错误处理(包括但不限于react,vue)

    错误异常发生 页面js报错 请求报错 页面资源加载报错 promise异常 iframe加载异常 页面奔溃卡顿异常 处理异常的方法 1、react 自带的errorBoundaries 2、 react 自定义Hooks 3、 vue errorHandler 4、try catch 对特定的代码进行捕获 5、window.addEventListerner 6、window.onerror 7、 window.unhandledrejection 8、

    2024年02月16日
    浏览(37)
  • 智慧文旅|AI数字人导览:让旅游体验不再局限于传统

    AI数字人导览作为一种创新的展示方式,已经逐渐成为了VR全景领域的一大亮点,不仅可以很好的嵌入在VR全景中,更是能够随时随地为观众提供一种声情并茂的讲解介绍,结合VR场景的沉浸式体验,让观众仿佛置身于真实场景之中,亲身感受每一个细节。 AI虚拟数字人的出现

    2024年03月24日
    浏览(38)
  • Python手相识别教程6线的通用原则

    线条不是无缘无故写在手上的,它们来自上天的影响和人类自身的个性。-- 亚里士多德 手部的主要纹路被称为手掌皱纹,在子宫中的第三个月就已完全形成。在胚胎发育成胎儿的关键时刻,有关个人生命的大量信息已经铭刻在手掌上。大脑和手是由相同的干细胞构成的,它们

    2024年02月02日
    浏览(27)
  • 软件测试充分性准则和测试停止准则

    一、软件测试充分性问题 1.测试充分性准则用来评价一个测试数据集(测试输入数据的集合)按照规范说明测试被测软件是否充分。 具有以下的一些基本特性: 空测试对于任何软件测试都是不充分的; 对任何软件都存在有限的充分测试数据集,这一性质称为有限性。如果一

    2024年01月20日
    浏览(23)
  • 最优模型选择的准则:AIC、BIC准则

    选择的准则: AIC准则、BIC准则 1.AIC准则 概念: AIC信息准则即Akaike information criterion,又称赤池信息准则。是衡量统计模型拟合优良性的一种标准,由日本统计学家赤池弘次创建和发展。它建立在熵的概念基础上,可以衡量所估计模型的复杂度和此模型拟合数据的优良性。 公

    2024年02月02日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包