向量空间马尔可夫随机场

vsmrfs的Python项目详细描述


向量空间马尔可夫随机场[学习的VS-MRF示例](https://raw.githubusercontent.com/tansey/vs mrfs/master/data/mfp_top.png)


此软件包为学习MRF提供支持,其中每个节点条件可以是任何一般指数族分布。当前支持的节点条件有bernoulli、gamma、gaussian、dirichlet和点膨胀模型。有关如何添加自定义节点条件分布的指导,请参见"exponential戋families.py"。


/>
"vsmrfs"包非常固执己见。它假设您有一个具有非常特定结构的实验目录。如果您的实验目录是"exp",那么您需要以下结构:

````
exp/
args/
data/
nodes.csv
足够的数据。csv
edges/
metrics/
plots/
weights/
``

首先是"exp/data/"结构和两个文件。如果您从合成数据集生成器生成数据,则将为您创建结构。


\1a)生成合成数据(可选)

为您安装所有的实验结构。例如,假设您想要运行一个包含两个bernoulli节点和一个三维dirichlet节点的实验,并且您想要使用"foo/"作为实验目录:

`vsmrf gen foo--nodes b d3`

g稀疏性和样本量的一些默认参数。您可以使用"vsmrf gen--help"查看选项的完整列表。


假设您知道数据类型,并且实验目录是"foo",则需要生成两个文件:

`foo/data/nodes.csv`:这是一个包含所有节点条件的数据类型的单行csv文件。当前支持的选项:

-`b`:bernoulli node
-`n`:normal或gaussian node
-`g`:gamma node
-`d`:dirichlet node,其中用dirichlet的维数替换,例如,对于3参数dirichlet
-`zix`:zero-explated或generic point explated node,其中"x"替换为膨胀分布。这是一个递归定义,因此可以有多个膨胀点,例如,"zizig"将是一个两点膨胀的gamma分布。

"foo/data/enough-statistics.csv":所有节点条件的充分统计的csv矩阵。第一行应该是列到节点的id映射。例如,如果您有一个包含两个bernoulli节点和一个三维dirichlet的数据集,那么您的头看起来像"0,1,2,2,2",因为"node0"和"node1"都是bernoulli(即单变量充分统计),而"node2"是您的dirichlet,有3个充分统计。然后,文件中的每一行对应一个数据样本。


这使得问题具有凸性和可分离性,使得我们能够独立地学习每个节点。如果您可以访问群集或分布式计算环境,这将使过程非常快速,因为您可以在不同的计算机上学习每个节点,然后在步骤3中将整个图缝合在一起。

如果您想从步骤2学习dirichlet节点,请使用解决方案路径approa这样可以避免超参数设置:

`vsmrf learn foo--target 2--solution\u path`

您可以使用"vsmrf learn--help"查看选项的完整列表。


由于我们正在学习近似模型,因此有时会存在"nodea nodea"的伪边,但"nodeb nodea"不存在。在这种情况下,我们必须决定是否将边包含在最终的图中,也就是说,我们应该将边放在一起,还是将边放在一起?这个包将同时创建这两个节点,但从经验上看,使用"and"图的性能稍好一些。


继续我们的示例,将我们的三节点mrf缝合在一起:

`vsmrf stitch foo--nodes b b d3`

根据模型的真实性,您可以计算得到的图形:

`vsmrf stitch foo--nodes b d3--evaluate`


请参见"vsmrf stitch--help"以获取完整的选项列表。

reference
--
```
@inproceedings{tansey:etal:2015,
title={vector space markov random f指数族雅思,
作者{tansey,wesley和马德里padilla,oscar h和suggala,arun和ravikumar,pradeep},
书名{第32届国际机器学习会议(icml-15)论文集,
年份{2015}
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将变量从一个类发送到另一个类   使用Java Kubernetes客户端Api部署pod   sql如何从oracle检索图像并在java框架中显示   java更改Clover检测类的位置   java安卓位置。getAccuracy()返回1   运行时。不支持Java ME 8上的exec()。还有别的选择吗?   bdd在Java中运行Cucumber时修改CucumberOptions标记   在java中将方法更改为运行时异常   构造函数类中的Java NullPointerException   java SetResizeable(false)不会阻止双击后的帧还原   java智能卡终端移除:SCARD_E_无服务卡例外   Java正则表达式和组   爪哇骑士巡回赛   端口8443上通过ssl的java Spring安全登录在使用http协议的端口8080上无法识别   java如何确定读取文件的哪一行特定行