90设计网站官网首页,wordpress网站好优化吗,南京网站设计公司兴田德润电话多少,免费的建设网站软件【Educoder数据挖掘实训】异常值检测-3σ法 开挖#xff01; 这个异常值检测基于的是两点#xff1a;
数据往往遵循正态分布在正态分布中#xff0c; [ μ − 3 σ , μ 3 σ ] [\mu - 3\sigma, \mu 3\sigma] [μ−3σ,μ3σ]包含了正态分布中 99.74 % 99.74\% 99.74%的数…【Educoder数据挖掘实训】异常值检测-3σ法 开挖 这个异常值检测基于的是两点
数据往往遵循正态分布在正态分布中 [ μ − 3 σ , μ 3 σ ] [\mu - 3\sigma, \mu 3\sigma] [μ−3σ,μ3σ]包含了正态分布中 99.74 % 99.74\% 99.74%的数据。
所以一个很容易想到的方法就是舍弃在上述区间之外的数。 代码实现也比较容易跟上一个实训箱线图代码实现一般无二。 只需要借住 S e r i e s Series Series中的函数 m e a n mean mean计算平均值、 s t d std std计算标准差即可。
import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats
import numpy as npdata pd.read_csv(src/death.csv, index_colUnnamed: 0)data data.dropna(axis1, threshdata.shape[0] * 0.2)
data data.dropna(axis0, threshdata.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 ##########
# 3σ 原则检测异常值
bar, sigma x.mean(), x.std()outliers_index (x bar - 3 * sigma) | (x bar 3 * sigma)
# 删除异常值x x[~outliers_index]# 打印各列异常值个数
print(outliers_index.sum())########## End ##########