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)[源代码]#
高斯混合。
高斯混合模型概率分布的表示。此类允许估计高斯混合分布的参数。
阅读更多的 User Guide .
Added in version 0.18.
- 参数:
- n_componentsint,默认=1
混合物成分的数量。
- covariance_type默认值为“full”、“tied”、“diag'、”spherical'},默认值为“full”
描述要使用的协方差参数类型的字符串。必须是以下之一:
“完整”:每个分量都有自己的一般协方差矩阵。
“绑定”:所有组件共享相同的一般协方差矩阵。
“dig”:每个分量都有自己的对角协方差矩阵。
“球形”:每个分量都有自己的单一方差。
- tol浮点数,默认值= 1 e-3
收敛阈值。当下限平均收益低于此阈值时,EM迭代将停止。
- reg_covarfloat,默认= 1 e-6
将非负正规化添加到协方差的对角线上。允许确保协方差矩阵均为正值。
- max_iterint,默认=100
要执行的EM迭代次数。
- n_initint,默认=1
要执行的初始化数量。保持最好的结果。
- init_params' k-means ',' k-means++',' random_from_data '}, 默认=' kmeans '
用于初始化权重、平均值和精度的方法。字符串必须是以下之一:
“kmeans”:使用kmeans初始化责任。
“k-means++”:使用k-means++方法初始化。
“随机”:责任随机初始化。
“random_from_data”:初始平均值是随机选择的数据点。
在 v1.1 版本发生变更:
init_params
现在接受“random_from_data”和“k-means++”作为初始化方法。- weights_init形状类似数组(n_components,),默认=无
用户提供的初始权重。如果为无,则使用
init_params
法- means_init形状类似阵列(n_components,n_features),默认=无
用户提供的初始方式,如果为无,则使用
init_params
法- precisions_init类数组,默认=无
用户提供的初始精度(协方差矩阵的逆)。如果为无,则使用“init_params”方法初始化精度。形状取决于“conservation_style”::
(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_stateint,RandomState实例或无,默认=无
控制分配给选择来初始化参数的方法的随机种子(请参阅
init_params
).此外,它还控制从匹配分布生成随机样本(请参阅方法sample
).传递int以获得跨多个函数调用的可重复输出。看到 Glossary .- warm_start布尔,默认=假
如果“warm_start”为True,则最后一次fit的解将用作下一次fit()调用的初始化。当对类似问题多次调用fit时,这可以加快收敛速度。在这种情况下,“n_initt”将被忽略,并且在第一次调用时仅发生一次初始化。看到 the Glossary .
- verboseint,默认=0
启用详细输出。如果为1,那么它会打印当前的初始化和每个迭代步骤。如果大于1,则它还会打印日志概率和每个步骤所需的时间。
- verbose_intervalint,默认值=10
下一次打印之前完成的迭代次数。
- 属性:
- weights_形状类似阵列(n_components,)
每个混合物成分的重量。
- means_形状类似阵列(n_组件,n_特征)
每个混合物成分的平均值。
- 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_阵列状
混合物中每个成分的精确矩阵。精度矩阵是协方差矩阵的逆矩阵。协方差矩阵是对称的,因此高斯混合可以通过精度矩阵等效参数化。存储精度矩阵而不是协方差矩阵可以更有效地计算测试时新样本的log似然性。形状取决于
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_阵列状
每个混合分量的精度矩阵的Skicky分解。精度矩阵是协方差矩阵的逆矩阵。协方差矩阵是对称的,因此高斯混合可以通过精度矩阵等效参数化。存储精度矩阵而不是协方差矩阵可以更有效地计算测试时新样本的log似然性。形状取决于
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
当达到EM的最佳匹配收敛时,为真,否则为假。
- n_iter_int
EM的最佳匹配达到收敛所使用的步骤数。
- lower_bound_浮子
EM最佳匹配的log似然(训练数据相对于模型的)的下限值。
- n_features_in_int
期间看到的功能数量 fit .
Added in version 0.24.
- feature_names_in_ :nd形状数组 (
n_features_in_
,)nd数组形状( Names of features seen during fit. Defined only when
X
has feature names that are all strings.Added in version 1.0.
参见
BayesianGaussianMixture
高斯混合模型符合变分推断。
示例
>>> import numpy as np >>> from sklearn.mixture import GaussianMixture >>> X = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]) >>> gm = GaussianMixture(n_components=2, random_state=0).fit(X) >>> gm.means_ array([[10., 2.], [ 1., 2.]]) >>> gm.predict([[0, 0], [12, 3]]) array([1, 0])
- aic(X)[源代码]#
输入X上当前模型的赤池信息标准。
You can refer to this mathematical section for more details regarding the formulation of the AIC used.
- 参数:
- X形状数组(n_samples,n_dimensions)
输入样本。
- 返回:
- aic浮子
越低越好。
- bic(X)[源代码]#
输入X上当前模型的Bayesian信息准则。
你可以参考这个 mathematical section 了解有关所用CIC配方的更多详细信息。
- 参数:
- X形状数组(n_samples,n_dimensions)
输入样本。
- 返回:
- bic浮子
越低越好。
- fit(X, y=None)[源代码]#
使用EM算法估计模型参数。
该方法适合该模型
n_init
时间并设置模型具有最大可能性或下限的参数。在每次试验中,该方法在E步和M步之间迭代,max_iter
直到可能性或下限的变化小于tol
,否则,ConvergenceWarning
被提出。如果warm_start
是True
那么n_init
被忽略,并在第一次调用时执行单个初始化。连续通话后,训练从停止的地方开始。- 参数:
- X形状类似阵列(n_samples,n_features)
n_特征维数据点列表。每一行对应一个数据点。
- y忽视
未使用,按照惯例,为了API一致性而存在。
- 返回:
- self对象
合适的混合物。
- fit_predict(X, y=None)[源代码]#
使用X估计模型参数并预测X的标签。
该方法对模型进行n_init次的匹配,并设置模型具有最大可能性或下限的参数。在每次试验中,该方法在E步和M步之间迭代,
max_iter
直到可能性或下限的变化小于tol
,否则,ConvergenceWarning
被提出。匹配后,它预测输入数据点的最可能标签。Added in version 0.20.
- 参数:
- X形状类似阵列(n_samples,n_features)
n_特征维数据点列表。每一行对应一个数据点。
- y忽视
未使用,按照惯例,为了API一致性而存在。
- 返回:
- labels数组,形状(n_samples,)
组件标签。
- get_metadata_routing()[源代码]#
获取此对象的元数据路由。
请检查 User Guide 关于路由机制如何工作。
- 返回:
- routingMetadataRequest
A
MetadataRequest
封装路由信息。
- get_params(deep=True)[源代码]#
获取此估计器的参数。
- 参数:
- deep布尔,默认=True
如果为True,将返回此估计量和包含的作为估计量的子对象的参数。
- 返回:
- paramsdict
参数名称映射到其值。
- predict(X)[源代码]#
使用训练模型预测X中数据样本的标签。
- 参数:
- X形状类似阵列(n_samples,n_features)
n_特征维数据点列表。每一行对应一个数据点。
- 返回:
- labels数组,形状(n_samples,)
组件标签。
- predict_proba(X)[源代码]#
评估每个样品的组分密度。
- 参数:
- X形状类似阵列(n_samples,n_features)
n_特征维数据点列表。每一行对应一个数据点。
- 返回:
- resp数组,形状(n_samples,n_components)
X中每个样本的每个高斯分量的密度。
- sample(n_samples=1)[源代码]#
从匹配的高斯分布生成随机样本。
- 参数:
- n_samplesint,默认=1
要生成的样本数量。
- 返回:
- X数组,形状(n_samples,n_features)
随机生成的样本。
- y数组,形状(nsamples,)
组件标签。
- score(X, y=None)[源代码]#
计算给定数据X的每样本平均对数似然。
- 参数:
- X形状类似阵列(n_样本,n_维度)
n_特征维数据点列表。每一行对应一个数据点。
- y忽视
未使用,按照惯例,为了API一致性而存在。
- 返回:
- log_likelihood浮子
对数似然
X
在高斯混合模型下。