我从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]])
Run Code Online (Sandbox Code Playgroud)
我预计结果会更像香草GMM; 也就是说,两个高斯(大约是1和6),具有不均匀的权重(如[0.625,0.375]).我预计"未使用过的"高斯人的重量接近于零.
我错误地使用了模型吗?
我也尝试过改变阿尔法而没有任何运气.