我遇到了一些困难,无法将多元高斯分布适配到我的数据集上,更具体地说,是找到一个均值向量(或多个均值向量)。我的数据集是一个N x 8的矩阵,目前我正在使用以下代码:
对于协方差,我使用任意的方差值(.5)进行构建,然后执行以下操作:
但是当我构建Phi矩阵时,我得到的全部都是零。下面是我的代码:
muVector = np.mean(Xtrain, axis=0)
其中Xtrain是我的训练数据集。对于协方差,我使用任意的方差值(.5)进行构建,然后执行以下操作:
covariance = np.dot(.5, np.eye(N,N))
其中N是观察数量。但是当我构建Phi矩阵时,我得到的全部都是零。下面是我的代码:
muVector = np.mean(Xtrain, axis=0)
# get covariance matrix from Xtrain
cov = np.dot(var, np.eye(N,N))
cov = np.linalg.inv(cov)
# build Xtrain Phi
Phi = np.ones((N,M))
for row in range(N):
temp = Xtrain[row,:] - muVector
temp.shape = (1,M)
temp = np.dot((-.5), temp)
temp = np.dot(temp, cov)
temp = np.dot(temp, (Xtrain[row,:] - muVector))
Phi[row,:] = np.exp(temp)
非常感谢您的帮助。我认为我可能需要使用np.random.multivariate_normal()函数?但是我不知道在这种情况下如何使用它。