Py之matplotlib&seaborn :高级图可视化之Q-Q分位数图probplot、boxplot箱线图、stripplot分类散点图案例应用及代码实现

 

 

 

目录

基于百分位数原理寻找异常点的案例应用及代码实现

T1、百分位数划分法寻找异常值—用Q-Q分位数图展示异常点

1.1、Q-Q分位数图:分位数-分位数图简介

1.2、百分位数划分法:​​​​​​​Q-Q分位数图probplot可视化

T2、百分位数划分法寻找异常值—​​​​​​​boxplot箱线图并行维度可视化

T3、stripplot分类散点图单维度可视化


 

 

 

相关文章
Py之Matplotlib:python包之Matplotlib库图表绘制包的简介、安装、使用方法详细攻略
Py之Matplotlib:python包之Matplotlib库图表绘制包所涉及中文、英文各种字体格式修改集合(学术论文常用必备)
Py之matplotlib:matplotlib、seaborn两种库绘图(常见曲线图、柱状图、饼形图等及其封装函数)最强总结
Py之matplotlib&seaborn :高级图可视化之​​​​​​​Q-Q分位数图probplot、​​​​​​​boxplot箱线图、stripplot分类散点图案例应用及代码实现
Py之Matplotlib :Matplotlib 绘图的高级进阶(动态图可视化及其代码实现)

 

相关文章
Py之matplotlib&seaborn :matplotlib&seaborn绘图的高级进阶之高级图可视化(基础图(直方图等),箱线图、密度图、小提琴图等)简介、案例应用之详细攻略
Py之matplotlib&seaborn :高级图可视化之​​​​​​​Q-Q分位数图probplot、​​​​​​​boxplot箱线图、stripplot分类散点图案例应用及代码实现

基于百分位数原理寻找异常点案例应用及代码实现

          找异常值。基本过程如下:假设在下面数值列表[0.1,0.15,0.2,0.25,0.3,0.35,0.4,4] 中确定是否有异常值,显然最后一个数“4”是异常值。
         
那么如何利用这些信息?异常点在建模或预测期间都会带来麻烦。基于此数据集训练完一个模型后,可以查看此模型预测错误的情况,然后确认此错误是否与这些异常点有关。如果确实是这样的话,可以采取步骤进行校正。例如,可以复制这些预测模型表现不好的例子,以加强这些例子在数据集中的比重。也可以把这些不好的例子分离出来,然后单独训练。如果认为预测模型在真正部署时不会遇到此类异常数据,则也可以把这些例子排除出数据集。一个可行办法是在对数据集进行探究阶段,先产生四分位数边界,然后看看潜在的异常点的规模对后续建模及预测可能的影响。这样在分析错误时,可以通过分位数图(quantile-quantile,Q-Q)确定哪些数据可以称为异常点。

 

T1、百分位数划分法寻找异常值—用Q-Q分位数图展示异常点

          发现这种异常值的一种方法是:将一组数字按照百分位数进行划分。
          例如,第25 百分位数是含有最小的25%的数,第50百分位数是含有最小的50%的数。把这种分组可视化最简单的方法是假想
把这些数据按顺序排列。上述的例子已经按顺序排好,这样就可以很容易地看到百分位数的边界。一些经常用到的百分位数通常被赋予特殊的名字。将数组按照1/4、1/5、1/10 划分的百分位数通常分别叫作四分位数(quartiles,按顺序排列的一组数据被划分为4 个相等部分的分割点的数值)、五分位数(quintiles)和十分位数(deciles)。
          上述的数组很容易定义出四分位数,因为此数组已按顺序排好,共有8 个元素。第一个四分位数含有0.1 和0.15,以下的以此类推。可以注意到这些四分位数的跨度。第一个是0.05(0.15 ~ 0.1)。第二个四分位数的跨度也大致相同。然而最后一个四分位数的跨度却是3.6,这个是其他四分位数跨度的几十倍。
          程序计算四分位数,然后显示最后一个四分位数的跨度要比其他的宽很多。为了更加准确,又计算了十分位数,同样证明了最后一个十分位数的跨度要远远大于其他的十分位数。有些情况下的最后一个分位数变宽是正常的,因为通常数据的分布在尾部会变稀疏。

          分析错误时,可以通过分位数图(quantile-quantile,Q-Q)确定哪些数据可以称为异常点。更具体地研究异常点(异常值)的一个方法就是画出数据的分布图,然后与可能的分布进行比较,判断相关的数据是否匹配。代码清单2-4 展示如何使用Python 的probplot函数来帮助确认数据中是否含有异常点。分布图展示了数据的百分位边界与高斯分布的同样百分位的边界对比。如果此数据服从高斯分布,则画出来的点应该是一条直线。

 

1.1、​​​​​​​Q-Q分位数图:分位数-分位数图简介

        统计学里Q-Q图(Q代表分位数)是一个概率图,用图形的方式比较两个概率分布,把他们的两个分位数放在一起比较。首先选好分位数间隔。图上的点(x,y)反映出其中一个第二个分布(y坐标)的分位数和与之对应的第一分布(x坐标)的相同分位数。因此,这条线是一条以分位数间隔为参数的曲线。
        如果两个分布相似,则该Q-Q图趋近于落在y=x线上。如果两分布线性相关,则点在Q-Q图上趋近于落在一条直线上,但不一定在y=x线上。Q-Q图可以用来可在分布的位置-尺度范畴上可视化的评估参数。
        由于P-P图和Q-Q图的用途完全相同,只是检验方法存在差异。要利用QQ图鉴别样本数据是否近似于正态分布,只需看QQ图上的点是否近似地在一条直线附近,而且该直线的斜率为标准差,截距为均值
        用QQ图还可获得样本偏度和峰度的粗略信息.

 

1.2、百分位数划分法:​​​​​​​Q-Q分位数图probplot可视化

scipy.stats.probplot(colData, dist="norm", plot=pylab)

import numpy as np 
import pylab 
import scipy.stats as stats

colData = np.random.normal(loc = 20, scale = 5, size=100)   
print(colData)

stats.probplot(colData, dist="norm", plot=pylab)
pylab.show()

 

 

T2、百分位数划分法寻找异常值—​​​​​​​boxplot箱线图并行维度可视化

​​​​​​​


import numpy as   np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns


sns.set(color_codes=True)
np.random.seed((sum(map(ord,"regression"))))

# titanic =   pd.read_csv("F:/File_Python/Resources/data/titanic.csv")
tips =   pd.read_csv("F:/File_Python/Resources/data/tips.csv")
# https://github.com/mwaskom/seaborn-data/blob/master/tips.csv
# iris =   pd.read_csv("F:/File_Python/Resources/data/iris.csv")
print(tips)

#stripplot分类散点图单维度可视化
# sns.stripplot(x="day",y="total_bill",data=tips,jitter = True) #jitter =  True  

#boxplot箱线图并行维度可视化
sns.boxplot(x='day', y='total_bill',hue ='sex',data=tips)   #并行维度的统计
plt.show()




 

T3、stripplot分类散点图单维度可视化


import numpy as   np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns


sns.set(color_codes=True)
np.random.seed((sum(map(ord,"regression"))))

# titanic =   pd.read_csv("F:/File_Python/Resources/data/titanic.csv")
tips =   pd.read_csv("F:/File_Python/Resources/data/tips.csv")
# iris =   pd.read_csv("F:/File_Python/Resources/data/iris.csv")
print(tips)

#stripplot分类散点图单维度可视化
sns.stripplot(x="day",y="total_bill",data=tips,jitter = True) #jitter =  True  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


本文转载:CSDN博客