python异常值检测与相关系数
2017-03-17 14:55
232 查看
异常值检测与概念此博客讲得不错:http://blog.csdn.net/zpdreamer/article/details/54095828
下面对不同年月的销售量进行异常值检测。部分数据如下:
![](https://img-blog.csdn.net/20170317144746741?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzM2NTQxMDcy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
代码如下:
结果如下:
x:[ 1. 1. 1. 1. 1. 1. 1. 1.]
y:[ 51. 865. 22. 60. 6607.4 4060.3 9106.44 4065.2 ]
异常值点就输出了。
箱线图略。。。。。
下面计算菜的相关系数,数据如下所示:
代码直接利用pd读取计算相关系数:
结果:
下面对不同年月的销售量进行异常值检测。部分数据如下:
代码如下:
#-*- coding: utf-8 -*- import pandas as pd catering_sale = 'catering_sale.xls' #餐饮数据 data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列 import matplotlib.pyplot as plt #导入图像库 plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 plt.figure() #建立图像 p = data.boxplot() #画箱线图,直接使用DataFrame的方法 x = p['fliers'][0].get_xdata() # 'flies'即为异常值的标签 print x y = p['fliers'][0].get_ydata() print y y.sort() #从小到大排序,该方法直接改变原对象 for i in range(len(x)): if i>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() #展示箱线图
结果如下:
x:[ 1. 1. 1. 1. 1. 1. 1. 1.]
y:[ 51. 865. 22. 60. 6607.4 4060.3 9106.44 4065.2 ]
异常值点就输出了。
箱线图略。。。。。
下面计算菜的相关系数,数据如下所示:
日期 百合酱蒸凤爪 翡翠蒸香茜饺 金银蒜汁蒸排骨 乐膳真味鸡 蜜汁焗餐包 生炒菜心 铁板酸菜豆腐 2015/1/1 17 6 8 24 13 13 18 2015/1/2 11 15 14 13 9 10 19 2015/1/3 10 8 12 13 8 3 7 2015/1/4 9 6 6 3 10 9 9 2015/1/5 4 10 13 8 12 10 17 2015/1/6 13 10 13 16 8 9 12 2015/1/7 9 7 13 8 5 7 10 2015/1/8 9 12 13 6 7 8 6 2015/1/12 6 8 8 3 4 5 2015/1/13 9 11 13 6 8 7 6 2015/1/14 6 7 8 9 4 7 8 2015/1/15 5 9 4 7 8 9 15 2015/1/16 9 7 11 9 11 8 14 2015/1/17 10 8 10 6 14 13 16 2015/1/18 13 12 12 10 9 11 8 2015/1/19 4 8 12 11 9 7 10 2015/1/20 6 12 10 9 11 4 8 2015/1/21 9 15 4 12 7 9 1 2015/1/22 3 10 13 13 13 8 13
代码直接利用pd读取计算相关系数:
#-*- coding: utf-8 -*- #餐饮销量数据相关性分析 from __future__ import print_function import pandas as pd catering_sale = 'catering_sale_all.xls' #餐饮数据,含有其他属性 data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列 data.corr() #相关系数矩阵,即给出了任意两款菜式之间的相关系数 print (data.corr()[u'百合酱蒸凤爪']) #只显示“百合酱蒸凤爪”与其他菜式的相关系数 print (data[u'百合酱蒸凤爪'].corr(data[u'翡翠蒸香茜饺'])) #计算“百合酱蒸凤爪”与“翡翠蒸香茜饺”的相关系数
结果:
百合酱蒸凤爪 1.000000 翡翠蒸香茜饺 0.009206 金银蒜汁蒸排骨 0.016799 乐膳真味鸡 0.455638 蜜汁焗餐包 0.098085 生炒菜心 0.308496 铁板酸菜豆腐 0.204898 香煎韭菜饺 0.127448 香煎罗卜糕 -0.090276 原汁原味菜心 0.428316 Name: 百合酱蒸凤爪, dtype: float64 0.00920580305184
相关文章推荐
- python中常用检测字符串相关函数汇总
- python面向对象其他相关-异常处理-反射
- Python检测和处理异常
- 人脸检测和识别及python实现系列(1)-- 环境配置和相关类库安装
- Mac上安装Python相关扩展包异常
- python 检测文件,有异常信息就发送邮件
- Python数据分析与机器学习-交易数据异常检测
- 人脸检测和识别及python实现系列(1)-- 环境配置和相关类库安装
- 回归中的相关系数以及R平方值和Python应用举例
- Python+pandas计算数据相关系数
- 利用python库计算person相关系数
- 常用距离算法和相关系数及其Python实现
- python用箱型图进行异常值检测
- 人脸检测和识别及python实现系列(2)-- 相关API介绍与数据采集
- python检测异常ip,并查询ip详细信息
- python try 代码组检测错误和异常
- Python中的异常处理相关语句基础学习笔记
- 机器学习(八):AnomalyDetection异常检测_Python
- Python学习异常检测
- 机器学习(八):AnomalyDetection异常检测_Python