news 2026/5/8 23:23:39

lintsampler:一种快速从任何分布中获取随机样本的新方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
lintsampler:一种快速从任何分布中获取随机样本的新方法

原文:towardsdatascience.com/lintsampler-a-new-way-to-quickly-get-random-samples-from-any-distribution-d07f73a70f5c?source=collection_archive---------8-----------------------#2024-10-14

https://medium.com/@aneesh92?source=post_page---byline--d07f73a70f5c--------------------------------https://towardsdatascience.com/?source=post_page---byline--d07f73a70f5c-------------------------------- Aneesh Naik

·发表于 Towards Data Science ·阅读时间 4 分钟·2024 年 10 月 14 日

lintsampler是一个纯 Python 包,可以轻松高效地从任何概率分布中生成随机样本。

完整披露:我是lintsampler的作者之一。

为什么你需要 lintsampler

我们经常遇到需要从给定概率分布(PDF)中抽取随机样本的情况。例如,我们可能想估算一些总结性统计量,或者为模拟创建一群粒子。

如果概率分布是标准分布,如均匀分布或高斯(正态)分布,那么numpy/scipy生态系统提供了一些简便的方法来从这些分布中抽取样本,方法是通过numpy.randomscipy.stats模块。

然而,在实际应用中,我们经常遇到非高斯的概率分布。有时,它们非常非高斯。例如:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a816e849fa2d0c53df5dd8cde36582eb.png

一个非常非高斯的 PDF。等高线是密度相等的线,在对数空间中按相等间隔分隔。图片来源:作者。

我们如何从这个分布中抽取样本呢?

有几种广泛使用的技术可以从任意分布中抽取样本,比如拒绝采样或马尔可夫链蒙特卡罗(MCMC)。这些都是优秀且可靠的方法,并且有一些方便的 Python 实现。例如,emcee是一个在科学应用中广泛使用的 MCMC 采样器。

现有技术的问题在于它们需要相当多的设置和调试。使用拒绝采样时,必须选择一个提议分布,而不合适的选择会使得过程非常低效。使用 MCMC 时,必须担心样本是否已收敛,这通常需要进行一些后验测试来评估。

输入lintsampler。操作简单如同:

fromlintsamplerimportLintSamplerimportnumpyasnp x=np.linspace(xmin,xmax,ngrid)y=np.linspace(ymin,ymax,ngrid)sampler=LintSampler((x,y),pdf)pts=sampler.sample(N=100000)

在这段代码中,我们沿着两个维度构造了 1D 数组,然后将它们与表示我们想从中抽取样本的概率分布的pdf函数一起传递给LintSampler对象(从lintsampler包中导入)。我们在这个片段中没有列出pdf函数,但在 docs 中有一些完全自包含的示例。

现在,pts是一个包含来自 PDF 的 100000 个样本的数组。以下是它们的散点图:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d79dcd41533335c64d581654d00cf3ee.png

从上面奇怪的 PDF 中采样的点的散点图(后者由轮廓线表示)。图片由作者提供。

本例的重点是演示如何轻松地设置和使用lintsampler。在某些情况下,它也比 MCMC 和/或拒绝采样要快得多且高效。如果你有兴趣了解lintsampler背后的工作原理,请继续阅读。否则,可以访问 docs,那里有描述 如何安装 和使用lintsampler的说明,包括带有 1D、2D 和 3D 用例的示例笔记本,以及对一些lintsampler附加功能的描述: 准蒙特卡洛采样(又称低差异序列)和在 自适应树结构 上的采样。此外,还有一篇发表于《开源软件杂志》(JOSS) 的 论文,描述了lintsampler

lintsampler的工作原理

lintsampler背后是我们称之为线性插值采样的算法。文档的 理论 部分提供了一个更详细且更具数学性的算法描述,但这里简要说明一下。

下面的示例演示了当你将 PDF 和网格传递给LintSampler类时,lintsampler背后发生了什么。我们将以 2D 高斯分布的简单示例为例,但这种方法适用于任意维度,并且适用于更不友好的 PDF。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3ea73a9e43dfcf1f8357735edfbacb2c.png

左:2D 高斯概率密度函数(PDF)。右:在(不均匀)网格上评估的概率密度函数。图片来自作者。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d349e131a17ba10837746ab5363527d6.png

使用(双)线性插值填充的网格化概率密度函数。图片来自作者。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/abf2821331ada9ab62cafcd622eb73e0.png

左:与前一图相同,随机选择的单元被高亮显示。右:高亮单元的放大图,显示采样点。图片来自作者。

值得理解的是,这里的关键步骤是线性近似:我们将在lintsampler文档中描述这一点,以及逆变换采样过程的更多细节。将概率密度函数近似为每个网格单元内的线性函数意味着它具有封闭的、解析的形式用于其分位数函数(即其逆累积分布函数),这意味着进行逆变换采样本质上归结为绘制均匀样本并对其应用代数函数。

用户需要关心的主要问题是获得合适的网格分辨率,以便线性近似足够准确。什么是合适的分辨率会因使用案例而异,正如在lintsampler文档中的一些示例笔记本所展示的那样。

祝你采样愉快!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 12:15:51

LingoNaut 语言助手

原文:towardsdatascience.com/lingonaut-language-assistant-6abe3e8b045c?sourcecollection_archive---------3-----------------------#2024-02-11 使用 Ollama-Python 对讲机进行多语言学习 https://natecibik.medium.com/?sourcepost_page---byline--6abe3e8…

作者头像 李华
网站建设 2026/5/1 0:57:15

MGeo模型对英文混合地址的处理能力

MGeo模型对英文混合地址的处理能力 引言:地址相似度匹配的现实挑战与MGeo的定位 在全球化业务场景中,跨语言、跨区域的地址数据融合已成为电商、物流、地图服务等领域的核心痛点。尤其是在跨国订单匹配、用户画像整合、门店信息去重等任务中,…

作者头像 李华
网站建设 2026/5/5 0:11:03

传统模型解释 vs SHAP分析:效率对比实验

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个对比分析项目,比较SHAP与传统模型解释方法的效率。要求:1) 在同一数据集上应用多种解释方法;2) 记录各方法的计算时间和内存消耗&#…

作者头像 李华
网站建设 2026/5/8 22:50:40

地理信息知识库构建:MGeo实体对齐的云端最佳实践

地理信息知识库构建:MGeo实体对齐的云端最佳实践 为什么需要MGeo实体对齐技术? 在处理全国POI(兴趣点)数据时,我们经常会遇到一个核心问题:同一个地点在不同数据源中可能有不同的描述方式。比如"北京市…

作者头像 李华
网站建设 2026/5/3 22:17:44

传统开发VS AI建站:效率对比实测报告

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请分别用传统方式和AI辅助方式实现一个企业官网,包含:首页、产品页、关于我们、联系方式4个页面。传统方式请给出详细开发步骤和时间估算;AI方式…

作者头像 李华