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

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

本文用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. 01_常用 Linux 命令的基本使用

    01. 学习 Linux 终端命令的原因 Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如 磁盘操作.文件存取.目录操作.进程管理.文件权限 设定等 在职场中,大量的 服务器维护工作 都 ...

  2. 在Win7虚拟机下搭建Hadoop2.6.0伪分布式环境

    近几年大数据越来越火热.由于工作需要以及个人兴趣,最近开始学习大数据相关技术.学习过程中的一些经验教训希望能通过博文沉淀下来,与网友分享讨论,作为个人备忘. 第一篇,在win7虚拟机下搭建hadoop ...

  3. 买手机时几GB+几GB啥意思

    48GB 就是你每次下载手机软件呀.浏览图片呀.这些东西都放在48G里.你每次查看手机内存,就会看到你的48G用了多少.但是你什么时候看到你的4GB用了多少,都是那些360加速球呀提示你手机内存占用过 ...

  4. 常用的标准SQL 语句

    1.创建数据库的语句如下: Create database databaseName 上述语句创建一个名字叫 databaseName 的数据库2.删除数据库的语句如下. Drop database ...

  5. 前行记录 - NOIP2018游记

    NOIP2018游记 - 前行记录 NOIP2018 完跪……滚回学校考半期 QwQ 这篇不是题解 awa ,题解之后会发布的,毕竟我还没有AC呢 又及……G2020 陌路笙歌 - 再见(╯▽╰) 感 ...

  6. html5 手风琴菜单

    因为项目需要,现在需要做个手风琴菜单,于是自己就瞎整了一下,所用只是less.js  javascript  jquery效果如图: 具体代码如下: <!DOCTYPE html> < ...

  7. 三、css篇

    #这里强烈推荐一本书<css世界>,css第一书. #上面的层叠顺序得记住. 1.align-items  justify-content 是flex(弹性盒模型)必须要会的属性,alig ...

  8. Linux 用户 和 组 快速了解

    1用户 (Linux中“只有超级管理员”才有权限操作 用户 和组) 1.1添加用户 useradd 命令 例如 :useradd hly //添加了一个新账户 hly 用户添加后 会存放在一个文件中, ...

  9. 微信小程序 提示框延时跳转

    wx.showToast({ title: '成功', icon: 'success', duration: 2000, success:function(){ console.log('haha') ...

  10. 微信小程序终于审核过了

    终于,我做的微信小程序审核结束了,虽然被退回来两次,但是第三次还是审核通过了! 加油骚年,相信自己!! 有什么问题可以评论告诉我!!