拉丁超立方采样的思想和代码
思想
思想很简单,就是假设你要从一个超维空间(维度=Dim)采样N个样本,那么拉丁超立方采样就是这样做的。分别在每个维度采样N个值(你可以理解成把单维度(一条线)分成N份,在每个范围都随机取一个值出来),完成这一步我们就有D个N维的值(每个维度有一个),然后随机组合(在每个维度随机拿一个,就组成了一个N维空间的点),那么总的就能有N个点了
在实现的时候,我们随机组合那一步,我们是直接把每一个维度的打乱,然后按下标取出来和就是随机组合的,具体看代码
为了方便呢我们是在0 1 之间分了N份(主要是直接调用函数方便),随意最后还要做一点点范围的缩放
代码
import numpy as npdef LHSample( D,bounds,N):'''D: 数据的维度bounds: 参数对应范围(list)N: 要采样的样本个数return: N个D维的样本数据'''result = np.empty([N, D]) # N个样本,每一行是一个样本,每个样本有D列(D个维度)temp = np.empty([N]) # 每个维度采样的值,一个N维的向量d = 1.0 / N # 采样间隔,你把[0,1],分成N份,每份间隔不就是 1/Nfor i in range(D):for j in range(N):temp[j] = np.random.uniform(low=j * d, high=(j + 1) * d, size = 1)[0]np.random.shuffle(temp) # 打乱,起到随机排列第i个维度的效果for j in range(N):result[j, i] = temp[j] # 第i个维度的坐标值就弄好了,然后弄下一个维度的# 对样本数据进行拉伸b = np.array(bounds)lower_bounds = b[:,0]upper_bounds = b[:,1]if np.any(lower_bounds > upper_bounds):print('范围出错')return None# sample * (upper_bound - lower_bound) + lower_bound 标准的范围缩放np.add(np.multiply(result,(upper_bounds - lower_bounds),out=result),lower_bounds, out=result)return resultif __name__ =='__main__':D = 2N = 30bounds = [[0,90],[0,90]]samples = LHSample(D,bounds,N)
YouTube上的几个视频讲的很好,实在没有理解的化可以去搜来看看,我觉得我讲的还算通俗易懂吧
拉丁超立方采样的思想和代码相关推荐
- 基于最大最小思想优化拉丁超立方采样
由于普通的拉丁超立方采样,样本点序列是一个随机的排列,就会出现如下分布状况,虽然采样点满足了空间投影均匀的特性,但它的空间填充效果并不好. 根据参考文献的那篇论文提出的最大最小方法优化普通拉丁超立方采 ...
- Matlab 拉丁超立方采样lhsdesign函数、lhsnorm函数介绍
本文主要介绍了Matlab自带的两个拉丁超立方抽样的两个函数--lhsdesign函数.lhsnorm函数,拉丁超立方抽样的原理后面有时间写一篇文章介绍一下 lhsdesign函数 X = lhsde ...
- 【采样算法】拉丁超立方采样
[采样算法]拉丁超立方采样 简介 过程 一维拉丁超立方采样 多维拉丁超立方采样 python编程 结论 参考 简介 LHS(Latin Hypercube Sampling)是一种分层采样方法,相较于 ...
- 采用拉丁超立方采样的电力系统概率潮流计算 拉丁超立方采样属于分层采样,是一种有效的用采样值反映随机变量的整体分布的方法
采用拉丁超立方采样的电力系统概率潮流计算 (自适应核密度估计,自适应带宽核密度估计) 拉丁超立方采样属于分层采样,是一种有效的用采样值反映随机变量的整体分布的方法. 其目的是要保证所有的采样区域都能够 ...
- LHS拉丁超立方采样matlab程序,对于均匀分布与正态(高斯)分布的变量进行拉丁超立方采样
1.对正态(高斯)分布的变量进行拉丁超立方采样 clc clear all close all cst_Mu_Sigma = load( 'cst_Mu_Sigma.dat'); Mu = cst_M ...
- Matlab 采用正态分布和韦布尔分布描述风电,光伏和负荷概率分布,采用拉丁超立方采样抽样生成大量场景
[1]关键词:场景生成:场景削减:概率分布:随机优化 [2]参考文献:<一种在微网动态经济调度中考虑风电随机性的方法> [3]主要内容:Matlab 采用正态分布和韦布尔分布描述风电,光伏 ...
- Python 拉丁超立方采样
#coding=utf-8 from __future__ import division __author__ = 'wanghai' import numpy as np from matplot ...
- 论文复现:模拟风电不确定性——拉丁超立方抽样生成及缩减场景(Matlab全代码)
风电出力的不确定性主要源于预测误差,而研究表明预测误差(e)服从正态分布且大概为预测出力的10%.本代码采用拉丁超立方抽样实现场景生成[1,2].基于概率距离的快速前代消除法实现场景缩减[3],以此模 ...
- 拉丁超立方——样本点空间转换
由拉丁超立方原理可知,在使用拉丁超立方采样采集的样本点的取值范围都在[0,1]区间内,而在实际问题中,设计变量的取值范围并不一定会在[0-1]区间内,为了保持在[0,1]区间内拉丁超立方采集的样本点的 ...
最新文章
- 在fvwm中将右手习惯改为左手习惯的简单办法
- Android混合推送,MUI框架-推送配置核心代码-个推推送
- Spring Boot常见企业开发场景应用、自动配置原理结构分析
- Oracle 高性能SQL引擎剖析----执行计划
- 软件测试_APP测试_兼容性测试
- 数据切分——Mysql分区表的管理与维护
- 咦?奇怪的知识又增加了?以数学建模的方式打开海啸传播模型(附部分matlab源码)
- 【视频课】8小时系统性地掌握深度学习视频分类与行为识别理论+实践
- java的imshow方法_如何在循环中使用子图,imshow或图形来显示所有图像?
- 均值(信息学奥赛一本通-T1060)
- 五大地形等高线特征_等高线顺口溜如何判别等值线的高度
- 解决【npm ERR! Unexpected end of JSON input while parsing near '...sh_time:141072930277'】方案...
- Hadoop大数据开发基础课后答案
- ISO 37301:2021《合规管理体系 要求及使用指南》国际标准解读及相关标准
- 直接可以用的Python和OpenCV检测及分割图像的目标区域例子
- 微信小程序获取后端数据
- 软件工程学硕考研经验分享
- 用PS把一张图片变成素描画
- 推荐一款可快速全量交付 Kubernetes 集群分布式应用的神器 Sealer
- ajax 实现关键字搜索,jQuery实现搜索页面关键字的功能
热门文章
- 超详细!Jmeter性能测试(一)
- VMware虚拟机 之 VMX进程已提前退出
- 推荐21款最佳 HTML 5 网页游戏
- ACM进阶大一到大三
- 50句英语成语:别想望文生义
- 获奖结果公布|2020腾讯犀牛鸟云开发校园技术布道师养成计划
- python表情包多样化聊天室_Python | 信不信我分分钟批量做你大堆的表情包?
- 计算10光年是多少米java_1光年是多少米,9.46×10^15米(最快的火箭需飞108000年)...
- day2 编码与基本数据类型转换
- 2022年湖北省文化产业示范园(基地)发展专项资金申报条件以及奖励补贴情况!