我从 DPGMM 得到的结果不是我所期望的。例如:
>>> import sklearn.mixture
>>> sklearn.__version__
'0.12-git'
>>> data = [[1.1],[0.9],[1.0],[1.2],[1.0], [6.0],[6.1],[6.1]]
>>> m = sklearn.mixture.DPGMM(n_components=5, n_iter=1000, alpha=1)
>>> m.fit(data)
DPGMM(alpha=1, covariance_type='diag', init_params='wmc', min_covar=None,
n_components=5, n_iter=1000, params='wmc',
random_state=<mtrand.RandomState object at 0x108a3f168>, thresh=0.01,
verbose=False)
>>> m.converged_
True
>>> m.weights_
array([ 0.2, 0.2, 0.2, 0.2, 0.2])
>>> m.means_
array([[ 0.62019109],
[ 1.16867356],
[ 0.55713292],
[ 0.36860511],
[ 0.17886128]])
我预计结果会更类似于香草 GMM;也就是说,两个高斯(大约值 1 和 6),权重不均匀(如 [0.625, 0.375])。我预计“未使用”的高斯函数的权重接近于零。
我是否错误地使用了模型?
我也尝试过更改 alpha,但没有任何运气。