-
n_components
:一个整数,指定分模型的数量,默认为1。covariance_type
:一个字符串,指定协方差的类型。必须为下列值之一:'spherical'
:球型,每个分模型的协方差矩阵都是各自的标量值。'tied'
:结点型,所有的分模型都共享一个协方差矩阵。'diag'
:对角型,每个分模型的协方差矩阵都是各自的对角矩阵'full'
:全型,每个分模型都有自己的协方差矩阵。
tol
:一个浮点数,用于指定收敛的阈值。EM
迭代算法中,当对数似然函数平均增益低于此阈值时,迭代停止。reg_covar
:一个浮点数,添加到协方差矩阵对角线上元素,确保所有的协方差都是正数。max_iter
:一个整数,指定EM
算法迭代的次数。n_init
:一个整数,用于指定初始化次数。即算法会运行多轮,只有表现最好的哪个结果作为最终的结果。init_params
:一个字符串,可以为'kmeans'/'random'
,用于指定初始化权重的策略。'kmeans'
:通过kmeans
算法初始化。'random'
:随机初始化。
weights-init
:一个序列,形状为(n_components,)
,指定初始化的权重。如果提供该参数,则不会使用
init_params
来初始化权重。means_init
:一个数组,形状为(n_components,n_features)
,指定了初始化的均值。如果为
None
,则使用init_params
来初始化均值。-
根据
covariance_type
的不同,该参数值的形状为不同。'tied'
:形状为[n_features,n_features]
。'diag'
:形状为[n_components,n_features]
。'full'
:形状为[n_components,n_features,n_featuress]
。
random_state
:指定随机数种子。warm_start
:一个布尔值。如果为True
,则上一次训练的结果将作为本次训练的开始条件。此时忽略n_init
,并且只有一次初始化过程发生。verbose
:一个整数,指定日志打印级别。verbose_interval
:一个整数,指定输出日志的间隔。
属性:
weights_
:一个形状为(n_components,)
的数组,表示每个分模型的权重。means_
:一个形状为(n_components, n_features)
的数组,表示每个分模型的均值 。covariances_
:一个数组,表示每个分模型的方差 。数组的形状根据方差类型有所不同。'spherical'
:形状为[n_components,]
。'tied'
:形状为[n_features,n_features]
。'diag'
:形状为[n_components,n_features]
。'full'
:形状为[n_components,n_features,n_featuress]
。
:一个数组,表示精度矩阵(协方差矩阵的逆矩阵),与
covariances_
形状相同。precisions_cholesky_
:一个数组,表示精度矩阵的Cholesky
分解。n_iter_
:一个整数,给出EM
算法收敛时的迭代步数。lower_bound_
:一个浮点数,给出了训练集的对数似然函数的下界。
方法:
fit(X[, y])
:训练模型。predict(X)
:预测样本所属的簇标记。fit_predict(X[, y])
:训练模型并执行聚类,返回每个样本所属的簇标记。predict_proba(X)
:预测样本所属各个簇的后验概率。sample([n_samples])
:根据模型来随机生成一组样本。n_samples
指定待生成样本的数量。score(X[, y])
:计算模型在样本总体上的对数似然函数。score_samples(X)
:给出每个样本的对数似然函数。aic(X)
:给出样本集的AKaike
信息准则。bic(X)
:给出样本集的贝叶斯信息准则。
AIC
和BIC
都是用于评估模型好坏的准则,用于衡量模型的复杂度和模型的精度。AIC:Akaike Information Criterion
准则的目标是:选取AIC
最小的模型。其中
AIC
定义为:, 为模型的参数个数, 为模型的似然函数。- 当模型之间的预测能力存在较大差异时,似然函数占主导地位。
- 当模型之间的预测能力差异不大时,模型复杂度占主导地位。
BIC:Bayesian Information Criterion
准则的目标是:选取BIC
最小的模型。其中 定义为:, 为模型的参数个数, 为模型的似然函数, 为训练样本的数量。
BIC
认为增加参数的数量也会增加模型复杂度。并不是超参数的数量,而是训练参数的数量。