02_Numpy学习笔记(下):随机采样

2023-11-07

02_Numpy学习笔记(下):随机采样

本文参考代码见gitee:https://gitee.com/hamor/ml/tree/master/numpy_notes

在做数据分析时,经常要假定数据服从某个分布,然后根据数据样本估计分布的参数,从而对数据的整体情况进行预测分析。

在对数据进行预处理时,经常加入新的操作或改变处理策略,此时如果伴随着随机操作,最好还是指定唯一的随机种子,避免由于随机的差异对结果产生影响。可以使用numpy.random.seed(seed=None)来完成:

  • numpy.random.seed(seed=None) Seed the generator.

seed() 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed() 值,则每次生成的随机数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。

随机变量的的分布大致可以按离散型随机变量和连续型随机变量两种情况进行分类。

(1)离散型随机变量的分布

  • 二项分布
  • 泊松分布
  • 超几何分布

(2)连续型随机变量的分布

  • 均匀分布
  • 正态分布
  • 指数分布

一、离散型随机变量的分布

1. 二项分布

在概率论和统计学中,二项分布(Binomial distribution)是n个独立的是/非试验中成功的次数的离散概率分布,其中每次试验的成功概率为p。这样的单次成功/失败试验又称为伯努利试验。实际上,当n = 1时,二项分布就是伯努利分布。二项分布是显著性差异的二项试验的基础。

一般地,如果随机变量 X X X服从参数为 n n n p p p的二项分布,我们记 X ∼ b ( n , p ) X\sim b(n,p) Xb(n,p) X ∼ B ( n , p ) X\sim B(n,p) XB(n,p)。n次试验中正好得到k次成功的概率由概率质量函数给出:
f ( k , n , p ) = Pr ⁡ ( X = k ) = ( a b ) p k ( 1 − p ) n − k f(k,n,p) = \Pr(X = k) = \begin{pmatrix} a \\ b \end{pmatrix} p^{k}(1 - p)^{n-k} f(k,n,p)=Pr(X=k)=(ab)pk(1p)nk
对于k = 0, 1, 2, …, n,其中 ( n k ) = n ! k ! ( n − k ) ! {n \choose k}={\frac {n!}{k!(n-k)!}} (kn)=k!(nk)!n!

二项式系数(这就是二项分布的名称的由来),又记为 C ( n , k ) C(n, k) C(n,k) n C k nC_k nCk,或 n C k ^nC_k nCk。该公式可以用以下方法理解:我们希望有k次成功 ( p k ) (p^k) (pk) n − k n − k nk次失败 ( 1 − p ) n − k (1 − p)^{n − k} (1p)nk。然而,k次成功可以在n次试验的任何地方出现,而把 k k k次成功分布在 n n n次试验中共有 C ( n , k ) C(n, k) C(n,k)个不同的方法。

  • numpy.random.binomial(n, p, size=None) Draw samples from a binomial distribution.
    表示对一个二项分布进行采样, size 表示采样的次数, n 表示做了n 重伯努利试验, p 表示成功的概率,函数的返回值表示n 中成功的次数。

2. 泊松分布

泊松分布主要用于估计某个时间段某事件发生的概率。

  • numpy.random.poisson(lam=1.0, size=None) Draw samples from a Poisson distribution.
    表示对一个泊松分布进行采样, size 表示采样的次数, lam 表示一个单位内发生事件的平均值,函数的返回值表示一个单位内事件发生的次数。

3. 超几何分布

在超几何分布中,各次实验不是独立的,各次实验成功的概率也不等。

  • numpy.random.hypergeometric(ngood, nbad, nsample, size=None) D r a w s a m p l e s f r o m a H y p e r g e o m e t r i c d i s t r i b u t i o n . Draw samples from a Hypergeometric distribution. DrawsamplesfromaHypergeometricdistribution.
    表示对一个超几何分布进行采样, size 表示采样的次数, ngood 表示总体中具有成功标志的元素个数, nbad 表示总体中不具有成功标志的元素个数, ngood+nbad 表示总体样本容量, nsample 表示抽取元素的次数(小于或等于总体样本容量),函数的返回值表示抽取nsample 个元素中具有成功标识
    的元素个数。

二、连续型随机变量的分布

1. 均匀分布

均匀分布可以使用以下方法产生:

  • numpy.random.uniform(low=0.0, high=1.0, size=None) Draw samples from a uniform distribution.
    Samples are uniformly distributed over the half-open interval [low, high) (includes low, but excludes high). In other words, any value within the given interval is equally likely to be drawn by uniform .

作为uniform()的特列,numpy.random.rand()可以得到[0,1) 之间的均匀分布的随机数。

  • numpy.random.rand(d0, d1, ..., dn) **Random values in a given shape. **

    Create an array of the given shape and populate it with random samples from a uniform distribution over [0, 1) .

作为uniform() 的另一特例,randint()可以得到[low,high) 之间均匀分布的随机整数。

  • numpy.random.randint(low, high=None, size=None, dtype='l') Return random integers from low (inclusive) to high (exclusive).
    Return random integers from the “discrete uniform” distribution of the specified dtype in the “half-open” interval [low, high). If high is None (the default), then results are from [0, low).

2. 正态分布

正态分布(normal distribution)又名高斯分布Gaussian distribution),是一个非常常见的连续概率分布。正态分布在统计学上十分重要,经常用在自然社会科学来代表一个不明的随机变量。

若随机变量 X X X服从一个位置参数为 μ \mu μ、尺度参数为 σ \sigma σ }的正态分布,记为:
X ∼ N ( μ , σ 2 ) X \sim N(\mu, \sigma ^{2}) XN(μ,σ2)
则其概率密度函数
f ( x ) = 1 σ 2 π    e − ( x − μ ) 2 2 σ 2 f(x)={\frac {1}{\sigma {\sqrt {2\pi }}}}\;e^{-{\frac {\left(x-\mu \right)^{2}}{2\sigma ^{2}}}} f(x)=σ2π 1e2σ2(xμ)2
正态分布的数学期望值或期望值 μ \mu μ 等于位置参数,决定了分布的位置;其方差 σ 2 \sigma ^{2} σ2的开平方或标准差 σ \sigma σ 等于尺度参数,决定了分布的幅度。

正态分布可以使用以下方法表示:

  • numpy.random.normal(loc=0.0, scale=1.0, size=None) Draw random samples from a normal (Gaussian) distribution.

其中,locscale分别为 μ ( 均 值 ) , σ ( 标 准 差 ) \mu(均值), \sigma(标准差) μ(),σ()

也可以使用sigma * np.random.randn(...) + mu产生正态分布的序列。

3. 指数分布

在概率论和统计学中,指数分布(Exponential distribution)是一种连续概率分布。指数分布可以用来表示独立随机事件发生的时间间隔,比如旅客进入机场的时间间隔、打进客服中心电话的时间间隔、中文维基百科新条目出现的时间间隔等等。

指数分布的概率密度函数为:

KaTeX parse error: No such environment: equation at position 8: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ f(x;\lambda) =…
其中λ > 0是分布的一个参数,常被称为率参数(rate parameter)。即每单位时间发生该事件的次数。指数分布的区间是[0,∞)。 如果一个随机变量X 呈指数分布,则可以写作:X ~ Exponential(λ)。

  • numpy.random.exponential(scale=1.0, size=None) Draw samples from an exponential distribution.

三、其他随机函数

1. 随机从序列中获取元素

  • numpy.random.choice(a, size=None, replace=True, p=None) Generates a random sample from a given 1-D array.

从序列中获取元素,若a 为整数,元素取值从np.range(a) 中随机获取;若a 为数组,取值从a 数组元素中随机获取。该函数还可以控制生成数组中的元素是否重复replace ,以及选取元素的概率p 。

2. 对数据集进行洗牌操作

数据一般都是按照采集顺序排列的,但是在机器学习中很多算法都要求数据之间相互独立,所以需要先对数据集进行洗牌操作。numpy提供了两个api

  • numpy.random.shuffle(x) Modify a sequence in-place by shuffling its contents.
    This function only shuffles the array along the first axis of a multi-dimensional array. The order of sub-arrays is changed but their contents remains the same.

  • numpy.random.permutation(x) Randomly permute a sequence, or return a permuted range.
    If x is a multi-dimensional array, it is only shuffled along its first index.

区别:shuffle(x)对x 进行重排序,如果x 为多维数组,只沿第 0 轴洗牌,改变原来的数组,输出为None。permutation()函数的作用与shuffle() 函数相同,可以打乱第0轴的数据,但是它不会改变原来的数组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

02_Numpy学习笔记(下):随机采样 的相关文章

随机推荐

  • 用VBS脚本查询纯真IP库QQWry.dat(转)

    查询给的IP地址所在的国家 ADSL服务商名称 前提 需要提供一个纯真的IP库 这个可以只需将从网上搜索QQWry dat进行搜索这个文件下载即可 然后将该文件放到与该脚本同目录下即可 原文地址 http demon tw programm
  • CSMA/CD协议原理及作用

    CSMA CD Carrier Sense Multiple Access with Collision Detection 协议是一种通信协议 它用于在以太网网络中解决多端口同时发送数据的冲突问题 原理 Carrier Sense 在发送
  • jvm的学习方法

    jvm详解 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 SmartyPa
  • debug常规的基本使用

    1 debug启动 在需要的调试的地方打上断点 然后右键debug启动 2 窗口调试功能 1 终止 程序终止 2 放行 有断点则调到下一个断点 没有则直接有运行完 3 跳到下一行 4 进入方法 3 快捷键 F8 跳到下一行 F9 放行 到下
  • Pandas提取数据的几种方式

    文章目录 前言 Pandas读取数据的几种方式 1 read csv 2 read excel 3 read sql 总结 前言 快期末了 数据挖掘的大作业需要用到python的相关知识 这太难为我这个以前主学C 的人了 不过没办法还是得学
  • Oracle 9i中表的在线重定义

    Oracle 9i中表的在线重定义 今天遇到要把数据库中的某张表改成分区表 而且该表在别的地方还有其他的注册信息 如果自己手工建一个分区表的替代该表的话 那就得要手工地去执行该表在其他地方的注册 所以不想删除该表再手工创建同名的分区表 想到
  • 前端预览下载pdf文件

    合同预览 拿到需要合同显示的数据 后台需要的参数 将参数经过base64编码传给后台 后段规定 问题 base64可能会将某些字符串符号编译为空格 后台返回一个文件地址 创建a标签 href指向返回的文件地址 function viewCo
  • Lecture13_光线追踪1(Whitted-Style Ray Tracing)_GAMES101 课堂笔记

    引入光线追踪目的 因为光栅化不能很好地处理全局效果 例如 软阴影 光栅化需要经过两个过程才能形成软阴影 Glossy 反射 既有反射 又有本身材质的粗糙性影响 间接反射 光线在空间中会反射很多次 很难渲染 光栅化速度快 但是质量并不好 表现
  • 如何重新启动k8s集群,并查看的状态

    重新启动k8s集群的方法取决于您使用的部署方式 如果您使用的是kubeadm部署 可以使用以下命令重启集群 kubeadm reset kubeadminit 如果您使用的是其他部署工具 请按照该工具的说明操作 查看集群状态可以使用kube
  • C#显式实现接口函数

    如果一个类实现了一个接口 他可以选择显示实现这个接口 如果显示实现了接口的话 要调用接口的方法 就必须将类型转换为接口去调用 如果要使用类的实例去调用 就必须为类实现该接口函数 例如 interface IShowMessage void
  • Vue3:Typescript与组合式API、defineProps、defineEmits等使用

    标注类型 props 使用 defineProps 使用
  • 【SQL Server 2016】&【SSMS 17】安装

    一 SQL Server 2016安装 1 1 光盘映像下载 SQL Server Downloads 1 2 安装光盘映像 首次安装点击 全新SQL Server独立安装或向现有安装添加功能 产品密钥自动输入 下一步 勾选 我接受许可条款
  • 解决yolov7bug(Command ‘git tag‘ returned non-zero exit status 128.)(IndexError: list index out of ran)

    1 问题 执行train py Command git tag returned non zero exit status 128 原因 使用预训练权重 但路径错误 未找到本地预训练权重 它会自动下载 下载被墙 解决方法 从github下载
  • 透视投影详解

    透视投影详解 概述 投影变换完成的是如何将三维模型显示到二维视口上 这是一个三维到二维的过程 你可以将投影变换看作是调整照相机的焦距 它模拟了为照相机选择镜头的过程 投影变换是所有变换中最复杂的一个 视锥体 视锥体是一个三维体 他的位置和摄
  • electron 获取电脑mac地址遇到的坑

    最近公司需求做一个exe程序 无奈只是一个小前端 只能使用electron来实现了 其中一个需求就是每个账号绑定唯一的电脑 这里选用网卡的mac地址来做这个唯一的字段 代码很简单 测试也很顺利 const mainWindow new Br
  • 房地产投资占GDP比例畸高 中国房地产泡沫是一颗毒瘤

    转 http house ifeng com detail 2014 05 04 46139202 0 shtml 房地产投资占GDP比例畸高 2013年房地产投资占GDP比例高达16 而事实上从1960年来但凡房地产投资占GDP比例高于6
  • 昇思MindSpore安装教程

    目录 昇思MindSpore安装教程 MindSpore 安装MindSpore 开始安装 创建虚拟环境 进入工作目录 下载完成 验证是否成功安装 关注MindSpore社区官方号 昇思MindSpore安装教程 MindSpore 它是华
  • [js] : js 设置 style 的 important

    const div document getElementById xxx div style setProperty height 100px important api 详情 参见 CSSStyleDeclaration getProp
  • 论文笔记:Blockchain in Industries: A Survey

    一 基本信息 论文题目 Blockchain in Industries A Survey 发表时间 IEEE Access 2019 作者及单位 二 摘要 区块链技术近来已成为研究和工业界的最前沿 因为它们为许多行业带来了潜在的好处 这是
  • 02_Numpy学习笔记(下):随机采样

    02 Numpy学习笔记 下 随机采样 文章目录 02 Numpy学习笔记 下 随机采样 一 离散型随机变量的分布 1 二项分布 2 泊松分布 3 超几何分布 二 连续型随机变量的分布 1 均匀分布 2 正态分布 3 指数分布 三 其他随机