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

【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 npdata = 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 - Q1lower_limit = Q1 - 1.5 * IQR
upper_limit = Q3 + 1.5 * IQRoutliers_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.hqwc.cn/news/502868.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端导出word文件的多种方式、前端导出excel文件

文章目录 纯前借助word模板端导出word文件 &#xff08;推荐&#xff09;使用模板导出 前端通过模板字符串导出word文件前端导出 excel文件&#xff0c;node-xlsx导出文件&#xff0c;行列合并 纯前借助word模板端导出word文件 &#xff08;推荐&#xff09; 先看效果&#xf…

森林灭火利器|便携式森林消防灭火泵|恒峰智慧科技

随着人们对环境保护意识的不断提高&#xff0c;森林防火工作显得尤为重要。然而&#xff0c;传统的森林灭火方式存在诸多不便&#xff0c;如火势蔓延迅速、灭火效率低下等。为了更好地保护森林资源&#xff0c;科学家们研发出了一种便携式森林消防灭火泵&#xff0c;它的出现为…

git安装4.3

一、git的安装 1、下载git包 下载git包url&#xff1a;https://git-scm.com/download/win 下载包分为&#xff1a;64位和32位 2、点击安装包 2、选择安装路径 3、 点击下一步 4、点击next 5、点击next 6、点击next 7、 8、 9、 10、 11、 12、在桌面空白处&#xff0c;右键…

零成本建站方案之Github Pages

之前的文章中介绍了如何申请AWS免费服务器并使用WordPress来搭建个人网站&#xff0c;今天给大家介绍一种无需任何硬件资源&#xff0c;也就是不需要准备服务器就可以搭建一个网站的方案&#xff0c;那就是使用github pages来搭建一个静态网站。 第一步&#xff0c;需要准备一个…

JavaScript类型转换

一些需要注意的数据类型&#xff1a; NaN的数据类型是numberArray、Date、null的数据类型是object未定义变量的数据类型是undefined 自动转换类型&#xff1a;尝试操作一个 “错误” 的数据类型时&#xff0c;会自动转换为 “正确” 的数据类型。 5 null // 返回 5 …

linux_day04

大纲&#xff1a;命令&#xff0c;vim&#xff0c;gcc&#xff0c;编译工具&#xff0c;生成代码&#xff0c;调试&#xff0c;库makefile&#xff0c;系统编程 文件系统&#xff1a;文件属性&#xff0c;文件内容&#xff0c;万物皆文件&#xff08;不在内存中的是文件&#…

【Vue3】自定义 Vue3 插件(全局实现页面加载动画)

// main.ts import { createApp } from vue import App from ./App.vue import Loading from "./components/Loading/index.ts";const app createApp(App) type Lod {show: () > void,hide: () > void } //编写ts loading 声明文件放置报错 和 智能提示 decl…

应用层DDoS防护:理解、必要性与实现策略

一、应用层简介 应用层&#xff0c;也称作第七层&#xff0c;是OSI&#xff08;开放系统互联&#xff09;模型中的最高层。在这一层&#xff0c;数据以特定的应用程序协议格式进行传输&#xff0c;如HTTP、FTP、SMTP等。应用层的主要职责是为用户提供网络服务&#xff0c;如文…

代码随想录Leetcode139. 单词拆分

题目&#xff1a; 代码(首刷看解析 2024年2月28日&#xff09;&#xff1a; class Solution { public:// 动态规划bool wordBreak(string s, vector<string>& wordDict) {int n s.size();// 初始化dp[i]vector<int> dp(n 1, false);dp[0] true;// 遍历 排列…

Robot Framework与Web界面自动化测试:简单例子

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

矩阵爆破逆向之条件断点的妙用

不知道你是否使用过IDA的条件断点呢&#xff1f;在IDA进阶使用中&#xff0c;它的很多功能都有大作用&#xff0c;比如&#xff1a;ida-trace来跟踪调用流程。同时IDA的断点功能也十分强大&#xff0c;配合IDA-python的输出语句能够大杀特杀&#xff01; 那么本文就介绍一下这…

redis的基本数据类型(一)

redis的基本数据类型 1、redis1.1、数据库分类1.2、NoSQL分类1.3、redis简介1.4、redis应用1.5、如何学习redis 2、redis的安装2.1、Windows安装2.2.1、客户端redis管理工具 2.2、Linux安装&#x1f525;2.2.1、redis核心文件2.2.2、启动方式2.2.3、redis桌面客户端1、redis命令…