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 に近いものになると予想していました。つまり、重みが一様でない ([ 0.625, 0.375] など) 2 つのガウス (値 1 と 6 付近)。「未使用」のガウス分布の重みはゼロに近いと予想していました。
モデルを間違って使用していますか?
また、アルファを変更しようとしましたが、運がありませんでした。