【Educoder数据挖掘实训】异常值检测-箱线图

news2024/12/26 0:54:00

【Educoder数据挖掘实训】异常值检测-箱线图

开挖!
关于箱线图,核心理念就是找出上四分位数和下四分位数,定义二者的差为 I Q R IQR IQR。上下四分位数分别向上下扩展 1.5 I Q R 1.5IQR 1.5IQR定义为上界和下界,在此之外的数据被认为是异常数据。
这当然是合理的,关键在于四分位数如何求。

这是实训中给出的方法,这当然是错误的。
四分位数是没有办法仅通过一条公式算出来的,肯定要分类讨论。由于是除以四所以分为 0.25 , 0.5 , 0.75 , 0 0.25,0.5,0.75,0 0.25,0.5,0.75,0四种情况。
靠哪边近哪边占据更大权重才是合理的,比如 0.25 0.25 0.25的情况下就有 Q i = 0.75 ⋅ x [ i ( l + 1 ) / / 4 ] + 0.25 ⋅ x [ i ( l + 1 ) / / 4 + 1 ] Q_i=0.75\cdot x[i(l+1)//4]+0.25\cdot x[i(l+1)//4+1] Qi=0.75x[i(l+1)//4]+0.25x[i(l+1)//4+1]
其余三种情况同理。
在这里插入图片描述
但是分类讨论比较麻烦,我们可以借助quantile函数帮助我们直接求出上下四分位点。

求出分位点之后,我们理所当然知道了上限和下限。
此时我们可以借助 S e r i e s Series Series数据类型的特殊运算性质我们求出异常值 b o o l bool bool类型的 s e r i e s series series,然后将他取反后在原 s e r i e s series series中去除即可。

import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats
import numpy as np

data = pd.read_csv("src/death.csv", index_col='Unnamed: 0')

data = data.dropna(axis=1, thresh=data.shape[0] * 0.2)
data = data.dropna(axis=0, thresh=data.shape[1] * 0.2)

a = pd.isna(data).sum()
cols = [x for i, x in enumerate(a.index) if a[i] > 0]

mode_list = 'FIPS Admin2'
for i in cols:
    if mode_list.find(i) != -1:
        data[i] = data[i].fillna(data[i].mode().iloc[0])
    else:
        data[i] = data[i].fillna(data.mean()[i])


cols = '2008/10/20,2008/11/20,2008/12/20'.split(',')
x = data[cols]


########## Begin ########## 
Q1 = x.quantile(0.25)
Q3 = x.quantile(0.75)
IQR = Q3 - Q1

lower_limit = Q1 - 1.5 * IQR
upper_limit = Q3 + 1.5 * IQR

outliers_index = (x < lower_limit) | (x > upper_limit)
x_c1 = x[~outliers_index]
print(outliers_index.sum())

########## End ########## 
x_c1.boxplot()
plt.savefig(r'src/step1/ans_img')
plt.show()

解决问题的关键在于两点:

  1. 看预计输出知道最后需要输出的数据类型是一个 s e r i e s series series,后我们通过查询 s e r i e s series series的一些优秀的运算性质来解决问题。
  2. 在学习新知识的时候查询多手资料,不要盲信题目中给出的知识点讲解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1482017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端【技术类】资源学习网站整理(那些年的小网站)

学习网站整理 值得分享的视频博主&#xff1a;学习网站链接 百度首页的资源收藏里的截图&#xff08;排列顺序没有任何意义&#xff0c;随性而已~&#xff09;&#xff0c;可根据我标注的关键词百度搜索到这些网站呀&#xff0c;本篇末尾会一一列出来&#xff0c;供大家学习呀 …

【图说】电脑发展史

免责声明:文中有一些图片来源自网络,如有版权请通知我删除,谢谢! “结绳记事”是计算的开端 如果说“结绳记事”仅是计数,那么“算筹”就是真正的计算工具 算盘也是我们老祖宗的杰出发明,最擅长“加减乘除”,包括但不限于乘方、开方、对数等。还能进行开发智力的“珠心算…

css实现背景渐变叠加

线性渐变效果图: .box{width: 100vw;height: 100vh;background:linear-gradient(to bottom,transparent,#fff 30%),linear-gradient(to right,pink,skyblue);}径像渐变效果图&#xff1a; .box{width: 100vw;height: 100vh;background:linear-gradient(to bottom,transparent,#…

SpringBoot+aop实现主从数据库的读写分离

读写分离的作用是为了缓解写库&#xff0c;也就是主库的压力&#xff0c;但一定要基于数据一致性的原则&#xff0c;就是保证主从库之间的数据一定要一致。如果一个方法涉及到写的逻辑&#xff0c;那么该方法里所有的数据库操作都要走主库。 一、环境部署 数据库&#xff1a;…

【AI+应用】aliyun的EMO图生视频模型引起的思考如何做AI数字人

昨天2 月 29 日消息&#xff0c;2 月 28 日&#xff0c;阿里巴巴集团智能计算研究院日前上线了一款新的 AI 图片 - 音频 - 视频模型技术 EMO&#xff0c;官方称其为 " 一种富有表现力的音频驱动的肖像视频生成框架 "。据悉&#xff0c;用户只需要提供一张照片和一段任…

WSL2更换国内源

1 备份初始源配置 sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak 2 删除并替换/etc/apt/sources.list内容 sudo vim /etc/apt/sources.list 这里更改为阿里云源 Ubuntu 18.04下源参考 阿里云源&#xff1a; ​ deb ubuntu安装包下载_开源镜像站-阿里云 bionic main…

matplotlib——折线图(python)

前言 在学习数据分析前&#xff0c;一定要有python基础&#xff0c;不一定要非常熟练的掌握这门语言&#xff0c;但一定要对python有个大概的了解&#xff08;就像我一样&#xff0c;大一学过python&#xff0c;但是现在忘的差不多了&#xff0c;但是没关系&#xff0c;有个大…

01、MongoDB -- 下载、安装、配置文件等配置 及 副本集配置

目录 MongoDB -- 下载、安装、配置 及 副本集配置启动命令启动 mongodb 的服务器&#xff08;单机和副本集&#xff09;启动单机模式的 mongodb 服务器启动副本集的 3 个副本节点&#xff08;mongodb 服务器&#xff09; 启动 mongodb 的客户端 MongoDB 下载MongoDB 安装1、解压…

Java 封装阿里云 oss 上传图片时抽取配置到 application 使用 @Value 获取值

Java 封装阿里云 oss 上传图片时抽取配置到 application 使用 Value 获取值 application .yml 配置 alioss: # 阿里云配置endpoint: "https://oss-cn-beijing.aliyuncs.com" # Endpoint以华东1&#xff08;杭州&#xff09;为例&#xff0c;其它Region请按实际…

ES系列之Logstash实战入门

概述 作为ELK技术栈一员&#xff0c;Logstash用于将数据采集到ES&#xff0c;通过简单配置就能把各种外部数据采集到索引中进行保存&#xff0c;可提高数据采集的效率。 原理 数据源提供的数据进入Logstash的管道后需要经过3个阶段&#xff1a; input&#xff1a;负责抽取数…

AI新工具(20240301) Ideogram; Image to Music Generator等

1: Ideogram 全新的多模态生图AI工具&#xff0c;以其优秀的文字渲染能力和生图能力受到业界瞩目 Ideogram是一个创新的AI工具&#xff0c;它通过在生成的图片中自然地整合文字&#xff0c;解决了生图AI领域长期存在的一个难题。这个工具特别擅长将文本以极其自然和协调的方式…

gRPC知识归档

文章目录 gRPC知识归档gRPC原理什么是gRPCgRPC的特性gRPC支持语言gRPC使用场景gRPC设计的动机和原则 数据封装和数据传输问题网络传输中的内容封装和数据体积问题JSONProtobuf&#xff08;微服务之间的服务器调用&#xff0c;一般采用二进制序列化&#xff0c;比如protobuf&…

ChatGPT与GEE+ENVI+python高光谱,多光谱等成像遥感数据处理技术

原文链接&#xff1a;ChatGPT与GEEENVIpython高光谱&#xff0c;多光谱等成像遥感技术 第一遥感科学与AI基础 一&#xff1a;遥感科学的基本原理和历史 从摄影侦察到卫星图像 遥感的基本原理 遥感的典型应用 最新进展和未来趋势 二&#xff1a;ChatGPT 什么是ChatGPT&a…

数字口岸再升级:广西二期项目助力口岸通关提速运营增效!

在数字口岸相关政策的引领下&#xff0c;广西与RCEP其他成员国进出口规模有力攀升&#xff0c;大力推动了广西向海经济&#xff0c;临港产业集群不断壮大&#xff0c;大宗商品贸易快速增长。据海关统计&#xff0c;2023年&#xff0c;广西进出口总值6936.5亿元人民币&#xff0…

k8s中容器的调度与创建:CRI,cgroup

container调度与创建 选自&#xff1a;K8s、CRI与container - packy的文章 - 知乎 https://zhuanlan.zhihu.com/p/102897620 Cgroup创建&#xff1a; cgexec -g cpu,memory:$UUID \ > unshare -uinpUrf --mount-proc \ > sh -c "/bin/hostname $UUID &…

关于vue中关于eslint报错的问题

1 代码保存的时候会自动将单引号报错为双引号 导致eslint报错的问题&#xff0c; 解决思路&#xff1a; 在项目根目录下新建一个.prettierrc.json文件 { “tabWidth”: 2,“useTabs”: false,“singleQuote”: true,“semi”: false} 2 关于报错代码的时候 出现尾随逗号报错…

MySQL 多表查询 连接查询 外连接

介绍 MySQL 多表查询 连接查询 内连接 外连接分为两种&#xff0c;左外和右外连接&#xff0c; 左外&#xff1a;相当于查询表1(左表)的所有数据 包含 表1和表2交集部分的数据,完全包含左表的数据 右外&#xff1a;相当于查询表2(右表)的所有数据 包含 表1和表2交集部分的数据…

《PySide6/PyQt6快速开发与实战》P111被省略了的案例

编程环境&#xff1a;Fedora, QtCreator 见代码&#xff1a; # This Python file uses the following encoding: utf-8 import sys from PySide6.QtWidgets import QApplication, QMainWindow, QLabel, QVBoxLayout, QWidget from PySide6.QtGui import QPalette #, QColo…

Scratch 第十三课-飞机大战游戏

第十三课-飞机大战游戏 学习目标 这节课我们做一款大家都爱玩的飞机大战游戏&#xff0c;学习重点&#xff1a; 如何导入外部角色如何让飞机发射子弹鼠标控制角色移动 程序设计 程序分析 &#xff1a; 飞机大战游戏相信很多小朋友都玩过&#xff0c;我方飞机在下方&#xf…

双通道音频功率放大电路,外接元件少, 通道分离性好,3V 的低压下可正常使用——D2025

D2025 为立体声音频功率放大集成电路&#xff0c;适用于各类袖珍或便携式立体声 收录机中作功率放放大器。 D2025 采用 DIP16 封装形式。 主要特点&#xff1a;  适用于立体声或 BTL 工作模式  外接元件少  通道分离性好  电源电压范围宽&#xff08;3V~12V &#xff…