当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn BayesianGaussianMixture用法及代码示例


本文简要介绍python语言中 sklearn.mixture.BayesianGaussianMixture 的用法。

用法:

class sklearn.mixture.BayesianGaussianMixture(*, n_components=1, covariance_type='full', tol=0.001, reg_covar=1e-06, max_iter=100, n_init=1, init_params='kmeans', weight_concentration_prior_type='dirichlet_process', weight_concentration_prior=None, mean_precision_prior=None, mean_prior=None, degrees_of_freedom_prior=None, covariance_prior=None, random_state=None, warm_start=False, verbose=0, verbose_interval=10)

高斯混合的变分贝叶斯估计。

此类允许在高斯混合分布的参数上推断出近似的后验分布。可以从数据中推断出组件的有效数量。

此类为权重分布实现了两种类型的先验:具有狄利克雷分布的有限混合模型和具有狄利克雷过程的无限混合模型。在实践中,狄利克雷过程推理算法是近似的,并使用具有固定最大分量数的截断分布(称为Stick-breaking 表示)。实际使用的组件数量几乎总是取决于数据。

在用户指南中阅读更多信息。

参数

n_components整数,默认=1

混合物成分的数量。根据weight_concentration_prior 的数据和值,模型可以通过将某些组件weights_ 设置为非常接近零的值来决定不使用所有组件。因此有效组件的数量小于 n_components。

covariance_type{‘full’, ‘tied’, ‘diag’, ‘spherical’},默认='满'

说明要使用的协方差参数类型的字符串。必须是以下之一:

'full' (each component has its own general covariance matrix),
'tied' (all components share the same general covariance matrix),
'diag' (each component has its own diagonal covariance matrix),
'spherical' (each component has its own single variance).
tol浮点数,默认=1e-3

收敛阈值。当(关于模型的训练数据的)可能性的下限平均增益低于此阈值时,EM 迭代将停止。

reg_covar浮点数,默认=1e-6

添加到协方差对角线上的非负正则化。允许确保协方差矩阵都是正数。

max_iter整数,默认=100

要执行的 EM 迭代次数。

n_init整数,默认=1

要执行的初始化次数。保留具有最高似然下限值的结果。

init_params{‘kmeans’, ‘random’},默认='kmeans'

用于初始化权重、均值和协方差的方法。必须是以下之一:

'kmeans' : responsibilities are initialized using kmeans.
'random' : responsibilities are initialized randomly.
weight_concentration_prior_typestr,默认='dirichlet_process'

说明之前重量浓度类型的字符串。必须是以下之一:

'dirichlet_process' (using the Stick-breaking representation),
'dirichlet_distribution' (can favor more uniform weights).
weight_concentration_prior浮点数或无,默认=无

权重分布上各组分的狄利克雷浓度(狄利克雷)。这在文献中通常称为伽马。较高的浓度将更多的质量放在中心,将导致更多的组件处于活动状态,而较低的浓度参数将导致更多的质量在混合权重单纯形的边。该参数的值必须大于0。如果为None,则设置为1. / n_components

mean_precision_prior浮点数或无,默认=无

均值分布(高斯)的先验精度。控制可以放置方法的范围。较大的值集中在 mean_prior 附近。该参数的值必须大于0。如果为None,则设置为1。

mean_prior类似数组,形状 (n_features,),默认=无

均值分布(高斯)的先验。如果为 None,则设置为 X 的平均值。

degrees_of_freedom_prior浮点数或无,默认=无

协方差分布上的自由度数的先验(Wishart)。如果为 None,则设置为 n_features

covariance_prior浮点数或类似数组,默认=无

协方差分布的先验(Wishart)。如果它是 None ,则使用 X 的协方差初始化经验协方差先验。形状取决于 covariance_type

(n_features, n_features) if 'full',
(n_features, n_features) if 'tied',
(n_features)             if 'diag',
float                    if 'spherical'
random_stateint、RandomState 实例或无,默认=无

控制为初始化参数而选择的方法提供的随机种子(请参阅init_params)。此外,它还控制从拟合分布中生成随机样本(请参阅方法 sample )。传递 int 以在多个函数调用之间实现可重现的输出。请参阅术语表。

warm_start布尔,默认=假

如果‘warm_start’ 为True,则最后一次拟合的解将用作fit() 的下一次调用的初始化。当在类似问题上多次调用 fit 时,这可以加快收敛速度。请参阅词汇表。

verbose整数,默认=0

启用详细输出。如果为 1,则打印当前初始化和每个迭代步骤。如果大于 1,那么它还会打印对数概率和每一步所需的时间。

verbose_interval整数,默认=10

下一次打印之前完成的迭代次数。

属性

weights_形状类似数组 (n_components,)

每个混合物组分的重量。

means_形状类似数组 (n_components, n_features)

每个混合成分的平均值。

covariances_类数组

每个混合成分的协方差。形状取决于 covariance_type

(n_components,)                        if 'spherical',
(n_features, n_features)               if 'tied',
(n_components, n_features)             if 'diag',
(n_components, n_features, n_features) if 'full'
precisions_类数组

混合物中每种成分的精度矩阵。精度矩阵是协方差矩阵的逆矩阵。协方差矩阵是对称正定的,因此高斯混合矩阵可以等效地由精度矩阵参数化。存储精度矩阵而不是协方差矩阵可以更有效地计算测试时新样本的对数似然。形状取决于covariance_type

(n_components,)                        if 'spherical',
(n_features, n_features)               if 'tied',
(n_components, n_features)             if 'diag',
(n_components, n_features, n_features) if 'full'
precisions_cholesky_类数组

每个混合分量的精度矩阵的乔列斯基分解。精度矩阵是协方差矩阵的逆矩阵。协方差矩阵是对称正定的,因此高斯混合矩阵可以等效地由精度矩阵参数化。存储精度矩阵而不是协方差矩阵可以更有效地计算测试时新样本的对数似然。形状取决于covariance_type

(n_components,)                        if 'spherical',
(n_features, n_features)               if 'tied',
(n_components, n_features)             if 'diag',
(n_components, n_features, n_features) if 'full'
converged_bool

当 fit() 达到收敛时为真,否则为假。

n_iter_int

最佳推理拟合达到收敛所使用的步数。

lower_bound_浮点数

最佳推理拟合的可能性(关于模型的训练数据)的下限值。

weight_concentration_prior_元组或浮点数

权重分布上各组分的狄利克雷浓度(狄利克雷)。类型取决于 weight_concentration_prior_type

(float, float) if 'dirichlet_process' (Beta parameters),
float          if 'dirichlet_distribution' (Dirichlet parameters).

较高的浓度将更多的质量放在中心,将导致更多的组件处于活动状态,而较低的浓度参数将导致更多的质量位于单纯形的边。

weight_concentration_形状类似数组 (n_components,)

权重分布上各组分的狄利克雷浓度(狄利克雷)。

mean_precision_prior_浮点数

均值分布(高斯)的先验精度。控制可以放置方法的范围。较大的值集中在 mean_prior 附近。如果 mean_precision_prior 设置为 None,则 mean_precision_prior_ 设置为 1。

mean_precision_形状类似数组 (n_components,)

每个分量在平均分布上的精度(高斯分布)。

mean_prior_形状类似数组 (n_features,)

均值分布(高斯)的先验。

degrees_of_freedom_prior_浮点数

协方差分布上的自由度数的先验(Wishart)。

degrees_of_freedom_形状类似数组 (n_components,)

模型中每个组件的自由度数。

covariance_prior_浮点或类似数组

协方差分布的先验(Wishart)。形状取决于 covariance_type

(n_features, n_features) if 'full',
(n_features, n_features) if 'tied',
(n_features)             if 'diag',
float                    if 'spherical'
n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

参考

1

克里斯托弗 M. 主教 (2006)。 “模式识别和机器学习”。卷。 4 第 4 名。纽约:施普林格。

2

哈盖·阿提亚斯。 (2000 年)。 “图形模型的变分贝叶斯框架”。神经信息处理系统的进展 12。

3

Blei、David M. 和 Michael I. Jordan。 (2006 年)。 “狄利克雷过程混合物的变分推理”。贝叶斯分析 1.1

例子

>>> import numpy as np
>>> from sklearn.mixture import BayesianGaussianMixture
>>> X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [12, 4], [10, 7]])
>>> bgm = BayesianGaussianMixture(n_components=2, random_state=42).fit(X)
>>> bgm.means_
array([[2.49... , 2.29...],
       [8.45..., 4.52... ]])
>>> bgm.predict([[0, 0], [9, 3]])
array([0, 1])

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.mixture.BayesianGaussianMixture。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。