我一直在到处寻找,我只找到了如何创建一个从一个向量到另一个向量的协方差矩阵,比如cov(xi,xj)。我困惑的一件事是,如何从集群中获得协方差矩阵。每个簇都有许多向量。如何将它们合并到一个协方差矩阵中。有什么建议吗?
信息:
输入:簇中的向量,Xi = ( x0,x1,...,xt),x0={5 1 2 3 4} -->一个列向量
(实际上它是一个MFCC特征向量,每个向量有12个系数,在用k-means聚类后,8个聚类,现在我想得到每个聚类的协方差矩阵,作为高斯混合模型中的协方差矩阵)
output : covariance matrix n x n发布于 2011-05-30 10:53:08
你正在问的问题是:给定一组维度为D的N个点(例如,您最初聚为“speaker1”的点),将D维高斯拟合到这些点(我们将其称为“表示speaker1的高斯”)。为此,只需计算样本均值和样本协方差: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)中的每个元素
因此,问题可以归结为,您实际上试图用您正在搜索的“协方差矩阵”来做什么?Mel倒谱系数...每个系数是否对应于一个八度的每个音符?你选择了k=12作为你想要的集群数量吗?你基本上是想在音乐中挑出音符吗?
我不确定协方差如何推广到向量,但我猜测两个向量x和y之间的协方差就是E[x dot y] - (E[x] dot E[y]) (基本上用点积代替乘法),这会给你一个标量,协方差矩阵的每个元素一个标量。然后,您只需将此过程放在两个for-循环中。
或者,您可以分别找到每个维度的协方差矩阵。如果不知道你到底在做什么,你就不能给出更多的建议。
https://stackoverflow.com/questions/6171799
复制相似问题