sklearn.mixture.GaussianMixture¶
class 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)
[源码]
高斯混合。
高斯混合模型概率分布的表示。此类允许估计高斯混合分布的参数。
在用户指南中阅读更多内容。
版本0.18中的新功能。
参数 | 说明 |
---|---|
n_components | int, defaults to 1. 混合元素的数量。 |
covariance_type | {‘full’ (default), ‘tied’, ‘diag’, ‘spherical’} 描述要使用的协方差参数类型的字符串。必须是以下之一: ‘full’ 每个分量都有自己的协方差矩阵 ‘tied’ 所有分量共享相同的通用协方差矩阵 ‘diag’ 每个分量都有自己的对角协方差矩阵 ‘spherical’ 每个组件都有其自己的单个方差 |
tol | float, defaults to 1e-3. 收敛阈值。当下限平均增益低于此阈值时,EM迭代将停止。 |
reg_covar | float, defaults to 1e-6. 非负正则化添加到协方差的对角线上。允许确保协方差矩阵均为正。 |
max_iter | int, defaults to 100. 要执行的EM迭代次数。 |
n_init | int, defaults to 1. 要执行的初始化次数。保持最佳结果。 |
init_params | {‘kmeans’, ‘random’}, defaults to ‘kmeans’. 用于初始化权重,均值和精度的方法。必须是以下之一: 'kmeans' : responsibilities are initialized using kmeans. 'random' : responsibilities are initialized randomly. |
weights_init | array-like, shape (n_components, ), optional 用户提供的初始权重,默认为None。如果为None,则使用 init_params 方法初始化权重。 |
means_init | array-like, shape (n_components, n_features), optional 用户提供的初始均值,默认为None,如果为None,则使用 init_params 方法初始化均值。 |
precisions_init | array-like, optional. 用户提供的初始精度(协方差矩阵的倒数),默认为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, optional (default=None) 控制分配给用于初始化参数的方法的随机种子(请参阅参考资料 init_params )。另外,它控制拟合分布中随机样本的生成(请参见方法sample )。为多个函数调用传递可重复输出的int值。请参阅词汇表。 |
warm_start | bool, default to False. 如果'warm_start'为True,则最后一次拟合的解决方案将用作下一次fit()的初始化。在类似问题上多次调用拟合时,可以加快收敛速度。在这种情况下,“ n_init”将被忽略,并且在第一次调用时仅发生一次初始化。请参阅词汇表。 |
verbose | int, default to 0. 启用详细输出。如果为1,则打印当前的初始化和每个迭代步骤。如果大于1,则还将打印对数概率和每个步骤所需的时间。 |
verbose_interval | int, default to 10. 下一次打印之前完成的迭代次数。 |
参数 | 说明 |
---|---|
weights_ | array-like, shape (n_components,) 每种混合元素的权重。 |
means_ | array-like, 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 每个混合元素的精确矩阵的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()中达到收敛时为true,否则为False。 |
n_iter_ | int 最适合EM达到收敛的步数。 |
lower_bound_ | float EM最佳拟合的对数似然(训练数据相对于模型)的下界值。 |
另见
高斯混合模型具有变分推断。
方法 | 说明 |
---|---|
aic (X) |
在当前模型上输入X的Akaike信息准则 |
bic (X) |
在当前模型上输入X的贝叶斯信息准则。 |
fit (X[, y]) |
用EM算法估计模型参数。 |
fit_predict (X[, y]) |
用X估计模型参数,并预测X的标签。 |
get_params ([deep]) |
获取这个算法的参数 |
predict (X) |
使用训练模型预测X中数据样本的标签。 |
predict_proba (X) |
在给定数据的情况下,预测每个分量的后验概率。 |
sample ([n_samples]) |
从拟合的高斯分布生成随机样本。 |
score (X[, y]) |
计算给定数据X的每个样本平均log似然函数 |
score_samples (X) |
计算每个样本的加权log概率。 |
set_params (**params) |
为算法设置参数 |
__init__(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)
[源码]
初始化self, 请参阅help(type(self))以获得准确的说明。
aic(X)
[源码]
在当前模型上输入X的Akaike信息准则
参数 | 说明 |
---|---|
X | array of shape (n_samples, n_dimensions) |
返回值 | 说明 |
---|---|
aic | float 越低越好。 |
bic(X)
[源码]
在当前模型上输入X的贝叶斯信息准则。
参数 | 说明 |
---|---|
X | array of shape (n_samples, n_dimensions) |
返回值 | 说明 |
---|---|
bic | float 越低越好。 |
fit(X, y=None)
[源码]
该方法拟合模型n_init
时间,并设置模型具有最大似然性或下界的参数。在每次试验中,该方法都会在E步和M步之间迭代一段max_iter
时间,直到似然性或下界的变化小于 tol
为止,否则ConvergenceWarning
提高a。如果warm_start
为True
,则将n_init
其忽略,并在第一次调用时执行一次初始化。连续运行时,训练从停下来的地方开始。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) n_features维数据点列表。每行对应一个数据点。 |
返回值 | 说明 |
---|---|
self |
fit_predict(X, y=None)
[源码]
使用X估算模型参数并预测X的标签。
该方法拟合模型n_init次,并设置模型具有最大似然性或下界的参数。在每次试验中,该方法都会在E步和M步之间迭代一段max_iter
时间,直到似然性或下界的变化小于 tol
为止,否则ConvergenceWarning
提高a。拟合后,它将为输入数据点预测最可能的标签。
0.20版中的新功能。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) n_features维数据点列表。每行对应一个数据点。 |
返回值 | 说明 |
---|---|
labels | array, shape (n_samples,) 组件标签。 |
get_params(deep=True)
[源码]
获取此估计量的参数。
参数 | 说明 |
---|---|
deep | bool, default=True 如果为True,则将返回此估算量和作为估算量的所包含子对象的参数。 |
返回值 | 说明 |
---|---|
params | mapping of string to any 参数名称映射到其值。 |
predict(X)
[源码]
使用训练好的模型预测X中数据样本的标签。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) n_features维数据点列表。每行对应一个数据点。 |
返回值 | 说明 |
---|---|
labels | array, shape (n_samples,) 组件标签。 |
predict_proba(X)
[源码]
给定数据,预测每个分量的后验概率。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) n_features维数据点列表。每行对应一个数据点。 |
返回值 | 说明 |
---|---|
resp | array, shape (n_samples, n_components) 返回给定每个样本的模型中每个高斯(状态)的概率。 |
sample(n_samples=1)
[源码]
从拟合的高斯分布中生成随机样本。
参数 | 说明 |
---|---|
n_samples | int, optional 要生成的样本数。默认为1。 |
返回值 | 说明 |
---|---|
X | array, shape (n_samples, n_features) 随机生成的样本 |
y | array, shape (nsamples,) 组件标签 |
score(X, y=None)
[源码]
计算给定数据X的每样本平均对数似然度。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_dimensions) n_features维数据点列表。每行对应一个数据点。 |
返回值 | 说明 |
---|---|
log_likelihood | float 给定X的高斯混合的对数似然。 |
score_samples(X)
[源码]
计算每个样本的加权对数概率。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) n_features维数据点列表。每行对应一个数据点。 |
返回值 | 说明 |
---|---|
log_prob | array, shape (n_samples,) 在X中记录每个数据点的概率。 |
set_params(**params)
[源码]
设置此估算器的参数。
该方法适用于简单的估计器以及嵌套对象(例如 pipelines)。后者具有形式的参数, <component>__<parameter>
以便可以更新嵌套对象的每个组件。
参数 | 说明 |
---|---|
**params | dict 估算量参数。 |
返回值 | 说明 |
---|---|
self | object 估算量实例。 |