样本数据集在构建机器学习模型的过程中具有重要的作用,样本数据集包括训练集、验证集、测试集,其中训练集和验证集的作用是对学习模型进行参数择优,测试集是测试该模型的泛化能力。

正负样本数据集符合独立同分布是构建机器学习模型的前提,从概率角度分析,样本数据独立同分布是正负样本数据是从某一特定的数据分布随机抽取得到的,且正负样本的分布是不一样的。举例来说,若我们用非洲的西瓜作为训练集,然后用中国的西瓜作为测试集,则数据集可能不满足同分布这一前提;抛硬币是最简单的独立同分布;用较专业的学术用语来举例,若训练数据集符合正态分布,测试集符合均匀分布,那么数据集不满足独立同分布这一前提。

本文用Q-Q可以分析不同数据集是否为同一分布,且可以用Q-Q图来验证数据集是否符合正态分布。

一、累积分布函数与分位数

累计分布函数(CDF,Cumulative Distribution Function),顾名思义,是概率累计的过程。对某一变量X取值为x,则x的累计分布函数是所有小于x值的概率相加,公式如下:

分位数(quantile)的概念与累计分布函数类似,也是一种概率累计过程,如第一四分位数是累积分布概率达到0.25时所对应的变量值,第二四分位数是累计分布概率达到0.5时多对应的值,第三四分位数是累计分布概率达到0.75时对应的值,公式如下:

α代表累计概率,分位数为Zα:

P(X<=Zα) = α ;

二、Q-Q图定义

Q-Q是一种散点图,横坐标为某一样本的分位数,纵坐标为另一样本的分位数,横坐标与纵坐标组成的散点图代表同一个累计概率所对应的分位数。若散点图在直线y=x附近分布,则这两个样本是同等分布;若横坐标样本为标准正态分布且散点图是在直线y=x附近分布,则纵坐标样本符合正态分布,且直线斜率代表样本标准差,截距代表样本均值。

如上图左上角图为某一数据的累计概率分布函数,右上角为标准正态分布的累计概率分布函数,对上述两图取同一个累计概率值对应的分位数,绘制散点图,由图可知,数据符合正态分布,斜率和截距分别代表数据的标准差和均值。

QQ图中正态分布直线的推导:

若数据x是正态分布的,那么f(x)是一个正态分布的概率密度函数,根据正态分布的特性,数据x对应的标准正态分布函数的概率密度函数:

y =f((x-m)/std),其中m为样本均值,std为样本标准差

横坐标的数据分布是标准正态分布,概率密度函数为f(n),由QQ图定义可知两者是一一对应的,因此有:

(x-m)/std = n ;

即:x = n*std + m;

所以直线的斜率代表标准差,截距代表均值。

三、构建普通QQ图

普通QQ图用于评估两个数据集的分布的相似程度,如上节所说的,若散点图在直线y=x附近,则两个数据集的分布类似。普通QQ图与正态QQ图的不同点在于普通QQ图的横坐标是未知数据集的分位数,正态QQ图的横坐标是标准正态分布的分位数,其他步骤都一样。

由上图可知,散点图没有接近一条直线,因此数据集1和数据集2来自不同的分布集。

上图是本人所从事项目数据的普通QQ图,散点图接近一条直线,因此可以认为数据集是来自同一分布。

参考:https://blog.csdn.net/hzwwpgmwy/article/details/79178485

怎么用Q-Q图验证数据集的分布的更多相关文章

  1. seaborn教程3——数据集的分布可视化

    原文转载:https://segmentfault.com/a/1190000015006667 Seaborn学习大纲 seaborn的学习内容主要包含以下几个部分: 风格管理 绘图风格设置 颜色风 ...

  2. [LeetCode] Graph Valid Tree 图验证树

    Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), ...

  3. Ruby 里的 %Q, %q, %W, %w, %x, %r, %s, %i (译)转

    原文地址  转自 %Q 用于替代双引号的字符串. 当你需要在字符串里放入很多引号时候, 可以直接用下面方法而不需要在引号前逐个添加反斜杠 (\") >> %Q(Joe said: ...

  4. ruby 中%Q %q %W %w %x %r %s的用法

    %Q 用于替代双引号的字符串. 当你需要在字符串里放入很多引号时候, 可以直接用下面方法而不需要在引号前逐个添加反斜杠 (\") >> %Q(Joe said: "Fr ...

  5. [Swift]LeetCode261.图验证树 $ Graph Valid Tree

    Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), ...

  6. [Ruby]转载: 关于ruby中 %Q, %q, %W, %w, %x, %r, %s 的用法

    单引号内的内容,ruby会原样输出 双引号内的内容,ruby会解析 我们看个简单的例子,针对字符串      #{foo}test     我们分别用单引号核双引号操作 '#{foo}test'   ...

  7. C# 实现list=list.OrderBy(q=>q.字段名).ToList(); 按多个字段排序

    //倒序 list.OrderByDescending(i => i.a).ThenByDescending(i => i.b); //顺序 list.OrderBy(i => i. ...

  8. 利用火焰图分析ceph pg分布

    前言 性能优化大神Brendan Gregg发明了火焰图来定位性能问题,通过图表就可以发现问题出在哪里,通过svg矢量图来查看性能卡在哪个点,哪个操作占用的资源最多 在查看了原始数据后,这个分析的原理 ...

  9. Q-Q图

    来自:https://mp.weixin.qq.com/s/_UTKNcOgKQcCogk2C2tsQQ 正负样本数据集符合独立同分布是构建机器学习模型的前提,从概率的角度分析,样本数据独立同分布是正 ...

随机推荐

  1. SpringBoot非官方教程 | 第十一篇:springboot集成swagger2,构建优雅的Restful API

    转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springboot/2017/07/11/springboot-swagger2/ 本文出自方志朋的博客 swa ...

  2. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--D-psd面试

    链接:https://www.nowcoder.com/acm/contest/90/D 来源:牛客网 1.题目描述 掌握未来命运的女神 psd 师兄在拿了朝田诗乃的 buff 后决定去实习. 埃森哲 ...

  3. Python学习——01Linux基础之常用基本命令

    做Linux要知道两件事: 首先知道自己处在什么位置(桌面……) 区分大小写 pwd:查看当前所在目录                                “/”代表:根目录 Cd: cd( ...

  4. Co. - Apple - Apple ID

    有些应用或游戏,在国内 App Store 没上架或者被下架了,但是其他国家或地区(如美国.香港和台湾等)的 App Store 却提供下载,这时我们需要登陆一个相应地区的 Apple ID 才可以下 ...

  5. SpringBoot向outlook发送邮件

    首先要登陆outlook邮箱,点击设置滑到最下面选择完整设置 进入后选择邮件->同步电子邮件 打开pop如上设置 下面是我的application.propertis设置 请填上自己的邮箱名与密 ...

  6. ASP.NET Web用户控件

    用户控件可用来实现页面中可重用的代码,是可以一次编写就多处方便使用的功能块.它们是 ASP.NET控件封装最简单的形式.由于它们最简单,因此创建和使用它们也是最简单的.用户控件实际上是把已有的服务器控 ...

  7. 使用CSS3制作首页登录界面实例

    响应式设计 在这个页面中,使用下面3点来完成响应式设计 1.最大宽度 .设定了一个 max-width 的最大宽度,以便在大屏幕时兼容.: 2.margin : 30px auto; 使其保持时刻居中 ...

  8. ethereum Pet Shop

    在部署宠物商店时遇到的一些坑,给大家总结一下,以免大家多走弯路 转载的地址(详细):https://steemit.com/cn/@lucia3/ethereum-pet-shop 启动"n ...

  9. 一道SQL面试题——表行列数据转换(表转置)

    SQL语句如下: select country, sum(case when type='A' then money end) as A, sum(case when type='B' then mo ...

  10. python与mysql的连接过程

    1.cmd---pip3 install PyMySQL2.>>>import pymysql3.mysql>create database bookdb character ...