向量空间马尔可夫随机场
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}
```
此软件包为学习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}
```