gpt4 book ai didi

python - scikit-learn (sklearn) 中 GaussianMixture 的负 BIC 值

转载 作者:行者123 更新时间:2023-12-05 04:57:45 30 4
gpt4 key购买 nike

scikit-learn 中,GaussianMixture 对象具有实现贝叶斯信息准则的方法 bic(X) 来选择更适合数据的组件。这是一个用法示例:

from sklearn import mixture
for n in range(0,10):
gmm = mixture.GaussianMixture(n_components=n, max_iter=1000, covariance_type='diag', n_init=50)
gmm.fit(data)
bic_n = gmm.bic(data)

我正在为具有 60 万行和 7 列的数据集拟合 GMM。 BIC 值始终为负数,例如[-2000、-3000、-3300、..]
在方法 bic() 的文档中,它说“越低越好”。对于我的示例中的负值,-3300 是最佳值,还是指绝对值的最低值?

最佳答案

通常,目标是最小化 BIC,因此如果您处于负值区域,则具有最大模数(负值区域最深处)的负数表示首选模型。

查看源码:https://github.com/scikit-learn/scikit-learn/blob/0fb307bf3/sklearn/mixture/_gaussian_mixture.py#L727

    def bic(self, X):
"""Bayesian information criterion for the current model on the input X.
Parameters
----------
X : array of shape (n_samples, n_dimensions)
Returns
-------
bic : float
The lower the better.
"""
return (-2 * self.score(X) * X.shape[0] +
self._n_parameters() * np.log(X.shape[0]))

关于python - scikit-learn (sklearn) 中 GaussianMixture 的负 BIC 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64316309/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com