如何在 matlab 中生成伯努利块混合模型?

数据挖掘 机器学习 聚类 matlab 二进制
2021-09-15 07:47:14

我正在尝试在 matlab 中编写伯努利块混合模型的代码,但每次运行该函数时都会遇到错误。特别是,我在如何关联分布参数方面遇到问题α对潜在变量ZW.

换句话说,\mathbf{Z} 遵循参数的多项分布π, 这样dim(π)=(1,g), 在哪里G 是行的簇数和 π=1.

W 遵循参数的多项分布 ρ 这样 暗淡(ρ)=(1,), 在哪里 是列簇的数量和 ρ=1.

Z 是一个矩阵 暗淡(ñ,G), 和 W 是一个矩阵 暗淡(d,), 在哪里ñ 是观察的数量, p 是变量的数量, G 是行簇的数量,并且 是列簇的数量。

X 遵循参数的伯努利分布 αZW, 其中符号 αZW 表示的值 α 依赖于取决于 ZW, 和 α 是一个 暗淡(G,)矩阵。请在附件中找到模型的图形表示。

我如何编写代码 αZW 为了生成模型?

在此处输入图像描述

1个回答

第一的,X一世j不是伯努利随机变量。在文中,X一世j被描述为实值。此外,尺寸zw不正确。

文本表明我们正在绘制一个数据矩阵调用它X(n×d) 这样 X一世,j=X一世j.

特定条目具有分布 X一世jF(αz一世,wj). 在哪里α is some given matrix of parameters. The maximum row index of α is g. The maximum column index of α is m. So α is g×m.

All that remains is to pin down the indices z and w. These are vectors rather than matrices since they have a categorical distribution, for example zi should be an integer between 1 and g.

Putting this together we need to:

  1. Draw z, a vector of length n, by ziCat(π),i=1,...,n
  2. Draw w, a vector of length d, by wjCat(ρ),i=1,...,d
  3. Draw X, an (n×d) matrix, by xijf(αzi,wj)