4

我一直在到处搜索,但只发现了如何创建从一个向量到另一个向量的协方差矩阵,例如 cov(xi, xj)。我感到困惑的一件事是,如何从集群中获取协方差矩阵。每个簇有许多向量。如何将它们放入一个协方差矩阵。有什么建议么??

信息:

输入:簇中的向量,Xi = (x0,x1,...,xt), x0 = { 5 1 2 3 4} --> 列向量

(实际上它是一个 MFCC 特征向量,每个向量有 12 个系数,在用 k-means 将它们聚类后,8 个簇,现在我想获得每个簇的协方差矩阵,以将其用作高斯混合模型中的协方差矩阵)

  output : covariance matrix n x n
4

1 回答 1

4

您要问的问题是:给定一组维度为 D 的 N 点(例如,您最初聚类为“speaker1”的点),将 D 维高斯拟合到这些点(我们将其称为“代表扬声器 1 的高斯” )。为此,只需计算样本均值和样本协方差http ://en.wikipedia.org/wiki/Multivariate_normal_distribution#Estimation_of_parameters或http://en.wikipedia.org/wiki/Sample_mean_and_covariance

对其他 k=8 扬声器重复此操作。我相信您可以使用“非参数”随机过程,或修改算法(例如在许多扬声器上运行几次),以消除您对 k=8 扬声器的假设。请注意,标准的 k-means 聚类算法(以及其他常见的算法,如 EM)非常变化无常,因为它们会根据您的初始化方式为您提供不同的答案,因此您可能希望执行适当的正则化来惩罚“坏”解决方案,因为您发现它们。


(在您澄清问题之前,以下是我的回答)

协方差是两个随机变量的属性,它粗略地衡量一个变量的变化对另一个变量的影响程度。

协方差矩阵仅仅是 NxM 个独立协方差的表示,集合cov(x_i,y_j)X=(x1,x2,...,xN) 和 Y=(y1,y2,...,yN) 中的每个元素

所以问题归结为,你实际上想用你正在搜索的这个“协方差矩阵”做什么?梅尔频率倒谱系数......每个系数是否对应于一个八度音阶的每个音符?您选择k=12了您想要的集群数量?您基本上是在尝试挑选音乐中的音符吗?

我不确定协方差如何推广到向量,但我猜想两个向量 x 和 y 之间的协方差只是E[x dot y] - (E[x] dot E[y])(基本上用点积代替乘法)这会给你一个标量,你的协方差矩阵的每个元素一个标量。然后你只需将这个过程放在两个 for 循环中。

或者,也许您可​​以分别找到每个维度的协方差矩阵。在不确切知道你在做什么的情况下,人们无法提供比这更进一步的建议。

于 2011-05-30T02:53:07.833 回答