五、FA
FactorAnalysis
类是scikit-learn
提供的FA
模型,其原型为:class sklearn.decomposition.FactorAnalysis(n_components=None, tol=0.01, copy=True,
max_iter=1000, noise_variance_init=None, svd_method=’randomized’, iterated_power=3,
random_state=0)
n_components
:一个整数或者None
,指定隐空间的维度。如果为
None
,则隐空间的维度为数据的特征维度。tol
:一个浮点数,指定EM
算法的收敛阈值。copy
:一个布尔值,指定是否拷贝原始数据。max_iter
:一个整数,指定最大的迭代次数。noise_variance_init
:一个形状为(n_features,)
的数组,或者为None
,指定噪音的协方差矩阵 (它时一个对角矩阵,该数组指定了对角矩阵的元素)的初始值。如果为
None
,则它等于全 1 的数据。等价于 。svd_method
:一个字符串,指定求解SVD
的算法。可以为:'lapack'
:使用scipy.linalg
的标准SVD
求解算法。'randomized'
:使用更快的randomized_svd
求解算法。对于大多数场景,该算法的精度已经能够满足需求。
iterated_power
:一个整数,指定power method
的迭代次数。仅仅用于svd_method='randomized'
。random_state
: 一个整数或者一个RandomState
实例,或者None
。指定随机数种子。
属性:
componets_
:一个形状为[n_components, n_features]
的数组,给出了矩阵 。loglike_
:一个形状为[n_iterations,]
的列表,给出了每次迭代的对数似然函数值。noise_variance_
:一个形状为[n_features,]
的数组,给出了噪音的协方差矩阵 。n_iter_
:一个整数,给出了迭代次数。
方法:
fit(X[, y])
:使用EM
算法训练模型。transform(X)
:执行因子分析,返回因子分析后的样本集。fit_transform(X[, y])
:训练模型并执行因子分析,返回因子分析后的样本集。get_covariance()
:在因子分析中,计算 的协方差矩阵,即 。score(X[, y])
:计算数据集的平均对数似然函数值,返回一个浮点数。score_samples(X)
: 计算每个样本的对数似然函数值,返回一个长度为 的序列, 为样本的数量。