Python箱型图处理离群点的例子
首先我们简单地区分一下离群点(outlier)以及异常值(anomaly):
离群点:
异常值:
个人觉着异常值和离群点是两个不同的概念,当然大家在数据预处理时对于这两个概念不做细致的区分,不如:姚明站在我们中间的时候,我觉着我们只能说他是一个离群点,我们能说他异常吗?异常的假设是姚明得了巨人症,可是他不是。
箱型图
代码块
餐饮销售数据离群点检测代码:
#-*-coding:utf-8-*- importpandasaspd catering_sale='../data/catering_sale.xls'#餐饮数据 data=pd.read_excel(catering_sale,index_col=u'日期')#读取数据,指定“日期”列为索引列 importmatplotlib.pyplotasplt#导入图像库 plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False#用来正常显示负号 plt.figure()#建立图像 p=data.boxplot(return_type='dict')#画箱线图,直接使用DataFrame的方法 x=p['fliers'][0].get_xdata()#'fliers'即为离群点的标签 y=p['fliers'][0].get_ydata() y.sort()#从小到大排序,该方法直接改变原对象 #用annotate添加注释 #其中有些相近的点,注解会出现重叠,难以看清,需要一些技巧来控制。 #以下参数都是经过调试的,需要具体问题具体调试。 foriinrange(len(x)): ifi>0: plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.05-0.8/(y[i]-y[i-1]),y[i])) else: plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.08,y[i])) plt.show()#展示箱线图
运行结果:
以上这篇Python箱型图处理离群点的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。