按照老师的方式,将四分位距的统计学异常检测如法炮制

按照老师的方式,将四分位距的统计学异常检测如法炮制,第1张

按照老师的方式,将四分位距的统计学异常检测如法炮制
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_excel("D:\dataspace\已结束项目任务数据.xls")
data=pd.Dataframe(data)
print(data)
x0=data.iloc[:,1]
x1=data.iloc[:,2]
# 选取经纬度两列特征

# 计算下四分位点
q1=x0.quantile(0.25)
print("q1",q1)
# 计算上四分位点
q3=x0.quantile(0.75)
print("q3",q3)
# 计算四分位距
iqr = q3-q1
print('iqr:',iqr)
lower_point =q1-1.5*iqr
Upper_point =q3+ 1.5*iqr
# 找到上下边缘值

Outlier3_x=[]
Inlier3_x = []
Outlier3_y=[]
Inlier3_y = []
for i in x0:
    if i >Upper_point or i =lower_point and i<=Upper_point:
        Inlier3_x.append(i)
        i_index =x0[x0==i].index.tolist()[0]
        Inlier3_y.append(x1[i_index])
# 遍历x[0]列表,找到在边缘区间以外的点作为异常点以及在边缘区间以内的点作为正常点。
print(Outlier3_x)
print(Outlier3_y)
plt.figure(figsize=(10,8))
plt.scatter(Inlier3_x,Inlier3_y,c='blue',s=20,label='Inlier')
plt.scatter(Outlier3_x,Outlier3_y,c='red',s=30,label='Outlier')
plt.legend()
plt.show()
# 绘制散点图

for i in range(len(x0)):
    if x0[i] > Upper_point or x0[i] < lower_point:
        print(data.iloc[i])
# 找到异常值对应的信息

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5658186.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存