7.1 API:GaussianMixture

文章目录

引言

GaussianMixture是EM算法在高斯混合分布的实现
sklearn-GaussianMixture

GaussianMixture

from sklearn.mixture import GaussianMixture

sklearn.mixture.GaussianMixture(n_components=1, *, covariance_type='full', tol=0.001, reg_covar=1e-06, 
max_iter=100,n_init=1, init_params='kmeans', weights_init=None, means_init=None, 
precisions_init=None, random_state=None,warm_start=False, verbose=0, verbose_interval=10)

描述

该API表示一个高斯混合模型概率分布,并且允许估计高斯混合分布的参数

参数

n_components : int, default=1
混合高斯模型个数,默认为1

covariance_type : {‘full’, ‘tied’, ‘diag’, ‘spherical’}, default=’full’
描述协方差的类型;默认‘full’ ,完全协方差矩阵

full 指完全协方差矩阵(元素都不为零)
tied 指相同的完全协方差矩阵(HMM-主题模型中会用到)
diag 指对角协方差矩阵(非对角为零,对角不为零)
spherical 指球面协方差矩阵(非对角为零,对角完全相同,球面特性)

tol : float, default=1e-3
EM迭代停止阈值,默认为1e-3.

reg_covar : float, default=1e-6
:协方差对角非负正则化,保证协方差矩阵均为正,默认为0

max_iter : int, default=100
最大迭代次数,默认100

n_init : int, default=1
初始化次数,用于产生最佳初始参数,默认为1

init_params : {‘kmeans’, ‘random’}, default=’kmeans’
初始化参数实现方式,默认用kmeans实现,也可以选择随机产生

weights_init : array-like of shape (n_components, ), default=None
权重初始化,可以自己设,如果为None,则使用init_params方法初始化权值。

means_init : array-like of shape (n_components, n_features), default=None
初始化均值;如果为None,则使用init_params方法初始化。

precisions_init : array-like, default=None
初始化精度(协方差矩阵的逆)。
如果为None,则使用’ init_params ‘方法初始化精度。形状依赖于’ 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’

random_state : int, RandomState instance or None, default=None
随机数种子,用于重复输出

warm_start : bool, default=False
如果’ warm_start ‘为True,则使用最后一次拟合的解作为下一次调用fit()的初始化参数,适合相同问题多次fit的情况,能加速收敛,默认为False。在这种情况下,’ n_init '被忽略,在第一次调用时只有一个初始化发生

verbose : int, default=0
是否冗余输出
如果为1,则打印当前的初始化和每个迭代步骤。
如果大于1,则还将打印对数概率和每个步骤所需的时间。

verbose_interval : int, default=10
在下一次打印之前完成的迭代次数,控制verbose的输出频率

属性

weights_ : array-like of shape (n_components,)
每个混合模型的权重

means_ : array-like of shape (n_components, n_features)
每个混合模型的均值

covariances_ : array-like
每个混合模型的协方差。矩阵大小取决于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_ : array-like
混合模型中每个模型的精度矩阵,精度矩阵是协方差矩阵的逆
形状依赖于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_ : array-like
The cholesky decomposition of the precision matrices of each mixture component
每一个混合模型的精度矩阵的cholesky decomposition
形状依赖于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()达到收敛时为True,否则为False

n_iter_ : int
EM达到收敛时迭代次数

lower_bound_ : float
EM达到收敛时,对数似然的下界值

方法
在这里插入图片描述

aic(X)
返回当前模型的aic(Akaike information criterion)

bic(X)
返回当前模型的bic(Bayesian information criterion)

fit(X, y=None)
用EM算法估计模型参数
该方法拟合模型n_init次,该方法都会在E步和M步之间迭代max_iter次,直到下界的变化小于tol为止,否则将引发ConvergenceWarning。
如果warm_start为True,则将忽略n_init,并在第一次调用时执行一次初始化。

fit_predict(X, y=None)
使用X估算模型参数并预测X的标签,返回标签

get_params(deep=True)
if deep = True,那么返回这个估计器的参数
返回字典形式的参数映射

predict(X)
使用训练模型预测 X 中数据样本的标签,返回标签

predict_proba(X)
预测给定数据的每个组分的后验概率

sample(n_samples=1)
从拟合的高斯分布生成随机样本

score(X, y=None)
计算给定数据X的每样本平均对数似然

score_samples(X)
计算每个样本的加权对数概率

set_params(**params)
设置该估计器的参数,**params :dict
返回估计实例

官方案例
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46649052/article/details/113572265
7.1