我遇到了sklearn.mixture.dpgmm的问题。主要问题是它没有返回合成数据的正确协方差(2个分离的2D高斯),它确实应该没有问题。特别是,当我执行dpgmm._get_covars()时,无论输入数据分布如何,协方差矩阵都具有始终精确地为1.0的对角元素。这似乎是一个错误,因为gmm完美地工作(当限制到已知的确切数量的组时)
另一个问题是dpgmm.weights_没有意义,它们总和为1,但值显得毫无意义。
有没有人有解决方法或看到我的例子明显错误?
以下是我正在运行的确切脚本:
linkList.contains(new Cookies("Name2", 3, 1));
答案 0 :(得分:1)
根据dpgmm docs此版本在版本0.18中已弃用,将在版本0.20中删除
您应该使用BayesianGaussianMixture类,而参数weight_concentration_prior_type
设置为选项"dirichlet_process"
希望有所帮助
答案 1 :(得分:0)
而不是写
from sklearn.mixture import GMM
gmm = GMM(2, covariance_type='full', random_state=0)
你应该写:
from sklearn.mixture import BayesianGaussianMixture
gmm = BayesianGaussianMixture(2, covariance_type='full', random_state=0)