多元分布的matlab GMM
matlap GMM of multivariate distibutions
我是 Matlab 的新手,很抱歉提出了一个愚蠢的问题。
我想创建一个由 GMM 生成的二维向量序列,其中包含三个多元正态分布。
那么,让我们开始吧
mu = [[0 1]; [0 2]; [0 3]]
cov = cat(4, 0, 0.5)
p = [0.4 0.4 0.2]
obj = gmdistribution(mu, cov, p)
问题是这个命令序列不起作用。
此外,我希望这三个分布有一个小的重叠。我不知道如何评估 mu 和 cov,使它们有一个小的重叠。
首先,cov
是协方差函数的名称,因此您最好将变量命名为例如sigma
。其次,您将 cov
变量创建为一个 4 维数组,其值 0
在 cov(1,1,1,1)
和 0.5
在 cov(1,1,1,2)
。
根据协方差矩阵的外观,变量 sigma
可能看起来不同。设 d
为维数(在您的示例中为 2),k
为分布数(在您的示例中为 3)。
一般情况:
每个高斯分布都有一个任意的协方差矩阵。 sigma
的大小为 d
xd
xn
,即 2x2x3,其中 sigma(:,:,k)
是第 k
个协方差矩阵。请注意,协方差矩阵当然必须是对称的和半正定的。你这样做,例如通过
sigma(:,:,1) = [1.0, 0.5 ; 0.5, 2.0];
sigma(:,:,2) = [0.8, 0.1 ; 0.1, 0.2];
sigma(:,:,3) = [1.2, 0.4 ; 0.4, 0.3];
对角协方差矩阵 如果你所有的协方差矩阵都是对角矩阵,你可以指定 sigma 作为 1
xd
xk
( 1x2x3) 矩阵,其中 sigma(1,:,k)
是第 k
个协方差矩阵的对角线元素。例如
sigma(1,:,1) = [1.0, 2.0];
sigma(1,:,2) = [0.8, 0.2];
sigma(1,:,3) = [1.2, 0.3];
相同的协方差矩阵如果所有k
个协方差矩阵相同,指定一次就够了
sigma = [1.0, 0.5 ; 0.5, 2.0];
相同的对角协方差矩阵如果所有k
协方差矩阵都是相同的对角矩阵,sigma
是包含对角元素的向量
sigma = [1.0, 2.0];
我是 Matlab 的新手,很抱歉提出了一个愚蠢的问题。
我想创建一个由 GMM 生成的二维向量序列,其中包含三个多元正态分布。
那么,让我们开始吧
mu = [[0 1]; [0 2]; [0 3]]
cov = cat(4, 0, 0.5)
p = [0.4 0.4 0.2]
obj = gmdistribution(mu, cov, p)
问题是这个命令序列不起作用。
此外,我希望这三个分布有一个小的重叠。我不知道如何评估 mu 和 cov,使它们有一个小的重叠。
首先,cov
是协方差函数的名称,因此您最好将变量命名为例如sigma
。其次,您将 cov
变量创建为一个 4 维数组,其值 0
在 cov(1,1,1,1)
和 0.5
在 cov(1,1,1,2)
。
根据协方差矩阵的外观,变量 sigma
可能看起来不同。设 d
为维数(在您的示例中为 2),k
为分布数(在您的示例中为 3)。
一般情况:
每个高斯分布都有一个任意的协方差矩阵。 sigma
的大小为 d
xd
xn
,即 2x2x3,其中 sigma(:,:,k)
是第 k
个协方差矩阵。请注意,协方差矩阵当然必须是对称的和半正定的。你这样做,例如通过
sigma(:,:,1) = [1.0, 0.5 ; 0.5, 2.0];
sigma(:,:,2) = [0.8, 0.1 ; 0.1, 0.2];
sigma(:,:,3) = [1.2, 0.4 ; 0.4, 0.3];
对角协方差矩阵 如果你所有的协方差矩阵都是对角矩阵,你可以指定 sigma 作为 1
xd
xk
( 1x2x3) 矩阵,其中 sigma(1,:,k)
是第 k
个协方差矩阵的对角线元素。例如
sigma(1,:,1) = [1.0, 2.0];
sigma(1,:,2) = [0.8, 0.2];
sigma(1,:,3) = [1.2, 0.3];
相同的协方差矩阵如果所有k
个协方差矩阵相同,指定一次就够了
sigma = [1.0, 0.5 ; 0.5, 2.0];
相同的对角协方差矩阵如果所有k
协方差矩阵都是相同的对角矩阵,sigma
是包含对角元素的向量
sigma = [1.0, 2.0];