您要问的问题是:给定一组维度为 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 循环中。
或者,也许您可以分别找到每个维度的协方差矩阵。在不确切知道你在做什么的情况下,人们无法提供比这更进一步的建议。