我将数据与GMM数据拟合,我想计算模型的均方误差,我该怎么办?
以下是生成数据的代码
Usercontrol
在我的想法中,我可以先生成import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
from sklearn import mixture
import matplotlib as mpl
from matplotlib.patches import Ellipse
%matplotlib inline
n_samples = 300
# generate random sample, two components
np.random.seed(0)
shifted_gaussian = np.random.randn(n_samples, 2) + np.array([20, 5])
sample= shifted_gaussian
# fit a Gaussian Mixture Model with two components
clf = mixture.GMM(n_components=2, covariance_type='full')
clf.fit(sample)
# Then how can I calculate the Mean square error of the fitted model?
函数,对于kdensity
中的每个观察,都要计算sample
。但我不确定这是否是正确的做法。
答案 0 :(得分:0)
查看文档:
http://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html
我想你可以试试:
covariances = clf.fit(sample).covariances_
MSE = np.diag(covariances)
这将为您提供拟合参数的协方差矩阵。然后矩阵的对角线值将给出拟合模型参数的均方误差。
或者它可能有效:
clf.fit(sample).get_params(deep=True)