程序兼容助手服务-运行启动命令

megui中文版
2023年4月4日发(作者:qq登录不了)

BME(Bayesianmaximumentropy)

最近在看BME,看了很多⽂章,有这样⼀种感觉,就是理论都看懂了,但是不知道咋使⽤,不知道在实际运⽤过程中是咋样⼀步步操作的,

在此记录下BME的理论和实践的学习过程,⽅便⾃⼰梳理。

理论基础

1.1⼀些变量说明

⾸先,⼤⾃然的时空发⽣过程可以看做是⼀个随机过程(Thespatiotemporalrandomfield,STRF),然后在⼀些时空点位(p1,p2,

…,pn)上,有着对应的随机变量(x1,x2,…xn),这些随机变量产⽣了⼀些实例(X1,X2,…,Xn),其中pi=(si,ti),si是n为空间位置,ti是

时间,这就是⼤⾃然产⽣数据的过程。也就是BME的⼀个思想框架,BME就认为这些⼤⾃然产⽣的这些数据是由这些时空点位上的随机变

量⽣成的,因此满⾜⼀定的概率密度函数,可以⽤后验概率分布来描述它们,以此来进⾏预测。

1.2数据说明

这个框架中⼴义的说数据分成3种,第⼀种是知识,知识可以是物理定律,可以是⼈们的经验,可以是其他的知识,都可以;第⼆种是hard

data,harddata就是可以精确描述的数据,⽐如⼈的⾝⾼数据,1.4m,1.6m之类的这种,其他的模型,如机器学习模型,就是使⽤的

harddata;第三类是softdata,这类数据就是和harddata相对应的,不能精确描述的数据,经典的softdata包括区间数据、分布数据、

函数数据,⽐如我们知道某个⼈的⾝⾼是在[1.5,1.8]m之间,这种就是区间数据。

1.3BME框架/流程

1.3.1Priorstage

先验阶段实际上是借助硬数据和知识来建⽴先验概率密度函数(pdf),建⽴先验概率密度函数的过程实际上求解⼀个最优化问题。

⽬标函数

⽬标函数是信息熵,希望能使信息熵最⼤,也就是包含的信息尽量多,在BME中就是希望pdf能够尽可能多的包含数据的信息,理论上只有

⽬标函数的话均匀分布是使得信息熵最⼤的。

约束

在上⾯的过程中似乎没有任何数据和知识,按照熵最⼤的⽬标得到了均匀函数。但是均匀函数可能和我们的知识相当不吻合,⽐如我们的知

识告诉我们这个分布是⾼斯的,⽐如我们的知识告诉我们某个区间的概率是0.3,⽐如我们的知识告诉我们⼩于某个阈值的概率是0.7,这些

知识就可以成为约束条件。

除了知识外,硬数据的信息也会成为约束,具体⽽⾔,硬数据的各阶矩⼀般都需要满⾜,⽐如⼀阶矩(均值),⼆阶矩(⽅差),以及⾼阶

矩等等,通过硬数据我们可以算出样本⼀⼆三等阶矩,那么我们要求⼴义分布要和这些样本(硬数据)相⼀致,具体⽤⼏阶矩可以视情况⽽

定。

于是⽬标⽅程和约束就构成了⼀个优化问题,使⽤拉格朗⽇乘⼦法可以求解这个优化问题,得到先验函数的通式如下所⽰:

其中的和是未知的系数,在后验概率分布求解阶段求取。

1.3.2Metapriorstage

这个阶段主要是对数据做处理,包括数据清洗、转换等等,准备harddata和softdata的形式,⽐如将softdata转化为之前提到的三种形

式之⼀(区间软数据、概率分布软数据、函数软数据),为后验概率分布求取做好准备⼯作。

1.3.3Posteriorstage

u0uα

后验概率分布求解阶段就是要根据软硬数据去求取后验概率分布,后验概率分布求取的通式如下所⽰,这个其实就是⼀个条件概率公式,已

知data的条件下,知道各个位置处的分布。

对于区间软数据,后验概率分布计算公式如下:

对于概率软数据,后验概率分布计算公式如下,式中的F(.)是累计概率函数。

⽬前我的理解是,Posteriorstage阶段是利⽤软硬数据求解出中的未知的系数,类似于机器学习模型中的训练阶段,不过这⾥有

点特殊的是训练不仅仅⽤到了harddata,还⽤到了softdata。硬数据的训练⽅式我的理解是将⾃变量代⼊后得到了⼀个因变量的分布,然

后因变量分布的均值或中位数或众数等于硬数据中的因变量,以此去训练参数。软数据的训练⽅式我的理解是代⼊⾃变量后(以区间软数据

为例),得到⼀个因变量的分布,然后对这个分布进⾏软数据区间积分,出现在这个区间的概率等于置信区间,以此来训练获得参数。

但是⽬前我仅仅是看了理论,还没有具体实践过,因此对这个理解不敢确定,很有可能是错的,若⼤佬知道可以指出来。

2.基于贝叶斯最⼤熵的多因⼦空间属性预测新⽅法

看了⼀篇具体的⽂章,看完了还是不知道细节是咋计算的,也找不到资料,好烦恼。

⽂章使⽤的是基于克⾥⾦⽅法和环境相关法的BME模型,该模型可以⽐单纯的使⽤克⾥⾦法效果更好。

下⾯讲⼀下在这篇⽂章中是如何去使⽤BME⽅法的。

2.1先验阶段

⾸先可以证明根据贝叶斯最⼤熵原理,当仅考虑硬数据的各阶统计动差时,所得结果与普通克⾥⾦法的结果⼀样;因此,在本研究中先验pdf

可⽤普通克⾥⾦⽅法计算,结果符合正态分布,即表⽰为:

根据这篇⽂章的说法,先验应该是可以完全求解出⼀个分布的,并不存在未知参数,这个例⼦⾥的先验函数并不存在任何未知数,这样看来

的话我上⾯的理解就错误了。这个地⽅还是先mark⼀下,究竟如何还需要探究。

2.2中间阶段

f(χ)G

map

KG

中间阶段是准备软数据的阶段,这边的软数据使⽤的是环境相关法得到的,下⾯简单介绍⼀下环境相关法,这个⽅法也相对简单。

假设有⼀个⾃变量EA,因变量是CA,分别将⾃变量和因变量分为N和n组,计算出类别-环境因⼦定量关系为:

其中为所有建模样点上辅助变量EA的取值属于的个数,⽽为包含的样点上辅助变量EA的取值属于

的个数。

上⾯这个计算出来的实际就是⾃变量取值是这个区间的时候,因变量CA的分布是咋样,在这篇论⽂⾥这个描述似乎不⼤准确。这样⼀

来通过⾃变量我就可以知道因变量的分布是咋样的了。但是这是⼀个⾃变量的情况,多个⾃变量就是对单个⾃变量做加权,权重使⽤的是⾃

变量和因变量的相关系数,其中注意需要做归⼀化,因为最后分布的概率密度之和是1.

通过上述的环境相关法就得到了⼀些未测点的需要预测点的概率分布,这个也就是软数据。

2.3后验阶段

后验阶段依然是我最不能理解的⼀个阶段,这个阶段没有找到任何有细节描述的资料,论⽂也只是给出了⼀个general的条件概率公式:

但是我还是不知道到底细节是咋操作的,如何使⽤软硬数据去更新概率密度函数,得到后验概率分布。

3.软件实现

可以通过实践过程来更进⼀步的了解BME模型,软件实现使⽤的是BMEGUI3.0.1,⾥⾯包含软件安装所需要的library,该软件包,还有使

⽤⼿册、安装⼿册、⽰例数据集,各⽰例数据集的tutorial。

3.1软件安装

下⾯记录下软件安装过程中所踩的坑,实在有点头秃:

软件在不断更新,可以看⼀下现在更新到第⼏版了,下⼀个最新版的,我给出的链接是3.0.1版的,

2.按照安装⼿册说明的顺序先将包⼀个个的安装好,注意安装过程中退出杀毒软件,⽐如360,否则过程中可能有bug,⽐如我在安装

MCR7.13的时候就因为杀毒软件安装失败了,报的错还查不到原因,折腾了好久。注意⼀定要每个包都安装好了。

安装好后,运⾏BMEGUI报错说找不到对应版本的MCR,检查该版本是否安装成功,然后检查系统路径中有没有MCR,如果都

没问题,但是依然报错,重启电脑试试。

4.下载下来的BMEGUI安装包不要放在有中⽂路径的位置下,保持路径全英⽂,要不然会出bug。

5.注意电脑上可能同时装了python2和python3,⽽且两个都在系统路径下,此时很可能默认是python3,这时需要做⼀下调整,我的

⽅法是找到python2的命令所在的⽂件,然后将修改成,这样⼀来cmd下⾯打python2就是调⽤的

python2了,和python3就区分开来了。

6.按照安装⼿册说的双击.py⽂件,可能直接打开了源代码,⽽并没有执⾏,这时右键,选择打开⽅式,在打开⽅式中找到

所在⽂件夹,然后点击,此时.py⽂件的默认打开⽅式就变成python2了。

7.双击00create_desktop_⽂件就可以在桌⾯创建图标了,双击图标就可以执⾏了。

8.具体使⽤过程中,注意⼯作⽬录路径、名称和⽂件都不要出现中⽂,所有的都⼀样是英⽂,要不然直接⽆法进⼊下⼀步,连错误提⽰

都不会有,⽂件格式严格按照要求,要不然也是直接⽆法进⼊下⼀步,连错误提⽰都不会有。

3.2软件输⼊数据

[(,CA),...,(,CA)]Counti

Count(1)i

1

Counti

Count(N)i

n

CountiEiCount(k)iCAKEAi

EAi

数据包括⼀个是分析数据源⼀个是rivernetworkdata,其中分析数据源包括时间空间和观察数据,它既可以是软数据也可以是硬数据,其

中硬数据⽐较容易,软数据可以包括区间数据、⾼斯分布、三⾓分布、截断⾼斯分布,当同时包括软硬数据时,需要加⼀个type字段来说明

是什么类型的数据。rivernetworkdata直接看下⾯的⽰意图就可以很好理解了。

需要说明的是为什么要使⽤rivernetworkdata,因为度量距离的时候默认是⽤经纬度计算直线坐标,但这很多时候不符合实际情况,加上

河⽹拓扑之后,就是使⽤拓扑来计算距离了,两点间⽹络最⼩距离作为两点间的距离,不过BMEGUI并不是使⽤图结构来刻画的,⽽是使⽤

的有向树,⽽且必须指明outlet,因此之后如果想要勾画路⽹,可能还要想想到底适不适⽤。

具体说明可以参考⽤户⼿册了。

3.3DialogBox2(DataDistribution)

主要就是⼀些描述性统计的结果,直⽅图,均值、⽅差等统计指标了,这个没啥好说的,也⾮常容易理解。

可以说⼀下的是,由于我们处理的数据中还包括软数据,软数据是没法做描述性统计之类的,这个实际上是先对软数据进⾏硬化,然后使

⽤“Hardened”values去进⾏描述性统计之类的,硬化⽅式就是取均值。

3.4DialogBox3(ExploratoryDataAnalysis)

只是画个图看看数据咋样的⽽已,没啥好说的,直接贴⼿册原话了

DialogBox3(ExploratoryDataAnalysis)alogboxhastwotabs,

labeled“TemporalEvolution”and“SpatialDistribution”,displaysthetimeseriesplotofthe

measurementvaluesateachmonitoringlocationonthe“TemporalEvolution”tab,andthespatialdistributionplotof

themeasurementvaluesatspecifictimesonthe“SpatialDistribution”tab.

然后⽤户可以⽤AggregationPeriod去对时间做聚合,然后展⽰,也是简单的。

3.5DialogBox4(MeanTrendAnalysis)

全局均值趋势分析使⽤的下⾯的公式:

其中代表的是空间分量,代表的时间分量。m(s)

ss

m(t)

ts

1.对每个观测点取均值得到therawspatialmean;

2.使⽤指数空间滤波器得到spatialcomponentthatissmoothedoverspace;

3.对每个观测时间取均值得到therawtemporalmean;

4.使⽤指数时间绿波器得到temporalcomponentthatissmoothedovertime。

这⾥简单说⼀下exponentialfilter,exponentialfilter公式如下图所⽰:(Exponentialsmoothingisaruleofthumbtechniquefor

sinthesimplemovingaveragethepast

observationsareweightedequally,exponentialfunctionsareusedtoassignexponentiallydecreasingweightsovertime.)

具体可见。

在BMEGUI中,需要输⼊的参数包括4个:“SpatialSearchRadius”,“SpatialSmoothingRange”,“TemporalSearch

Radius”,“TemporalSmoothingRange”,我理解的这些参数的意思是:⾸先TemporalSearchRadius的意思⽐较容易理解:the

radiusofthetemporalneighborhoodusedtoselectpointsforthetemporalexponentialfilter,即确定平滑的数据,利⽤哪些数

据去做指数平滑,TemporalSmoothingRange:⼿册的说法是correspondingtotherangeofthetemporalexponentialfunction.

但是我没有理解,我觉得这个参数指的是下⾯这个,可以利⽤这个参数wise去计算出指数平滑所需要的alpha。

3.6DialogBox5(Space/TimeCovarianceAnalysis)

假设Covariance只和timelag以及spatiallag有关,⽬标是要拟合出covariancemodelc(r,t),要想拟合出c(r,t),第⼀步是要⽣成数据

点,也就是不同的timelag和spatiallag下的covariance,⽣成⽅式详见⼿册。第⼆步就是要拟合CovarianceModel,公式如下图所⽰:

唯⼀需要说明的是需要等于或近似等于数据⽅差,具体原因可以看⼿册,也很容易理解了,其中就是第i个structure的still。

“spatialrange”andthe‘temporalrange”看具体的⽅差拟合公式就可以知道,不再详细叙述。具体操作可以多拟合⼏次,看图效果

不错了,就可以停⽌了。

3.7DialogBox6(BMEEstimation)

这个部分就是BME估计部分了,可以进⾏时间维度的估计和空间维度的估计两部分。空间分布部分得到的特定时间的BME估计的均值和⽅

差地图,时间分布部分得到的是特定观测点的BME估计得到的关于时间的均值和⽅差的函数。

MaximumSpatialDistance和MaximumTemporalDistance限定BME对某个点进⾏估计时的时间和空间范围。

Space/TimeMetric:Aparameterthatisusedtocalculatethespace/ce/Timedistanceisobtainedas

(Spatialdistance)+(Space/TimeMetric)*(Temporaldistance)简单地说就是⼀个关于距离和时间的量纲调整系数。

MaxHardDataPoint和MaxSoftDataPoint:BME估计中使⽤的最多的软硬数据数量。

LocalMean:这个就直接贴⼿册了,我也没完全理解。Orderofthepolynomialusedtomodelthemeantrend(ordrift)alongthe

aultsettingis“Zero”,whichwillusea

meantrendofzeroandcorrespondstosimplekriging.“Constant”willuseaconstantlocaldrift,whichcorrespondsto

ordinarykrigingappliedlocallyaroundtheestimationpoint.“Linear”willusealocaldriftthatvarieslinearlyalongthe

spatialandtemporalaxes.“Quadratic”willuseapolynomialoforder2,llyOrder>1correspondstouniversal

krigingappliedlocallyaroundtheestimationpoint.

ms

mss

mt

mts

sum(c)0ic0i

EstimationParameters(SpatialDistribution)部分也有⼀些参数,这些参数主要是⽤来对空间分布可视化起作⽤的。

EstimationTime:需要展⽰空间BME估计的时间;

NumberofEstimationPoints(X)and(Y):x轴和y轴的估计栅格个数;

AreaofEstimationGrid:进⾏BME估计的边界;

mask⽂件约束估计范围,使得估计范围更加精准,但是也可以不提供。

EstimationParameters(TemporalDistribution)也是类似的。

最后绘出的图是这样的:Aplotofthetimeseri

bluesolidlinedisplaystheBMEmeanestimatesandthegreendottedlineshowsthelowerandupperboundsofthe69%

confidenceinterval(whichcorrespondstotheBMEmeanestimate±1standarddeviationundertheassumptionofa

Gaussiandistribution).Thebluedotsshowtheharddata,whiletheredtrianglesandsquaresshowthehardenedsoft

alsodisplaystheshape(intervalorGaussian)ofthePDFdescribingthe

softdatumateachsoftdatapoint.“PlotList”displaysalltheestimatedtimeseriesplotsandeachentryonthelistshows

its“PlotID”and“StationID”.

⾄此软件也介绍完了,之后的话可以跑⼀下软件附带的数据集例⼦感受⼀下,也可以熟悉⼀下。有时间的话建议还是要⾃⼰看⼀遍⼿册,也

⽐较快,⼤半天应该就可以看完了。

参考⽂献

[1]张楚天.贝叶斯最⼤熵⽅法时空预测关键问题研究与应⽤[D].华中农业⼤学,2016.

[2]杨勇,张楚天,贺⽴源.基于贝叶斯最⼤熵的多因⼦空间属性预测新⽅法[J].浙江⼤学学报(农业与⽣命科学版),2013,39(6):636-644.

[3]杨勇,张若兮.贝叶斯最⼤熵地统计⽅法研究与应⽤进展[J].⼟壤,2014,046(003):402-406.

[4]HeJ,anmaximumentropyapproachanditsapplications:areview[J].StochasticEnvironmental

Research&RiskAssessment,2017.

更多推荐

megui中文版