sklearn.decomposition.FactorAnalysis¶
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)
因子分析(FA)
一个简单的高斯潜变量线性生成模型。
观测假设是由低维潜因子的线性变换和附加的高斯噪声引起的。在不失一般性的情况下,各因子是按均值为零、协方差为单位的高斯分布。噪声的均值也是零,且具有任意对角协方差矩阵。
如果我们进一步限制模型,假设高斯噪声是均匀各向同性的(所有对角项都相同),我们将得到PPCA
。
因子分析采用基于奇异值分解的方法,对所谓的加载矩阵进行最大似然估计,将潜在变量转化为观察变量。
更多信息请参阅用户指南.。
新版本0.13。
参数 | 说明 |
---|---|
n_components | int\None 潜在空间的维度, transform 后得到的X分量的个数。如果没有,则将n_components设置为特性的数量。 |
tol | float 停止容忍对数似然增长。 |
copy | bool 是否复制X,如果为False,则在拟合过程中覆盖输入X。 |
max_iter | int 最大迭代次数。 |
noise_variance_init | None\array, shape=(n_features,) 每个特征的噪声方差的初始猜测。如果没有,则默认为np.ones(n_features) |
svd_method | {‘lapack’, ‘randomized’} 使用哪种SVD方法。如果“lapack”使用scipy.linalg中的标准SVD,如果“随机化”使用快速 randomized_svd 函数。默认为“随机”。对于大多数应用程序,“随机化”将足够精确,同时提供显著的速度增益。还可以通过为iterated_power 设置更高的值来提高准确性。如果这还不够,为了获得最大的精度,你应该选择“lapack”。 |
iterated_power | int, optional 幂次法的迭代次数。默认3。仅在svd_method等于“随机化”时使用 |
random_state | int, RandomState instance, default=0 仅在svd_method = ' randomize '时使用。在多个函数调用中传递可重复的结果。详见术语表. |
属性 | 说明 |
---|---|
components_ | array, [n_components, n_features] 方差最大的分量。 |
loglike_ | list, [n_iterations] 每次迭代的对数似然。 |
noise_variance_ | array, shape=(n_features,) 估计每个特征的噪声方差。 |
n_iter_ | int 运行的迭代次数。 |
mean_ | array, shape (n_features,) 每个特征的经验平均数,从训练集估计。 |
另见:
主成分分析
主成分分析也是一种潜在的线性变量模型,但假设每个特征的噪声方差相等。这个额外的假设使得概率主成分分析更快,因为它可以以封闭的形式进行计算。
FastICA
独立分量分析,非高斯潜变量模型。
参考资料
示例
>>> from sklearn.datasets import load_digits
>>> from sklearn.decomposition import FactorAnalysis
>>> X, _ = load_digits(return_X_y=True)
>>> transformer = FactorAnalysis(n_components=7, random_state=0)
>>> X_transformed = transformer.fit_transform(X)
>>> X_transformed.shape
(1797, 7)py
方法
方法 | 说明 |
---|---|
fit (self, X[, y]) |
利用基于奇异值分解的方法将因子分析模型拟合到X上 |
fit_transform (self, X[, y]) |
拟合数据,然后转换它。 |
get_covariance (self) |
用因子分析模型计算数据协方差。 |
get_params (self[, deep]) |
获取这个估计器的参数。 |
get_precision (self) |
利用因子分析模型计算数据精度矩阵。 |
score (self, X[, y]) |
计算样本的平均对数似然 |
score_samples (self, X) |
计算每个样本的对数似然 |
set_params (self, **params) |
设置这个估计器的参数。 |
transform (self, X) |
利用模型对X进行降维。 |
__init__(self, n_components=None, *, tol=0.01, copy=True, max_iter=1000, noise_variance_init=None, svd_method='randomized', iterated_power=3, random_state=0)
初始化self. See 请参阅help(type(self))以获得准确的说明。
fit(self, X, y=None)
利用基于奇异值分解的方法将因子分析模型拟合到X上
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) 训练数据 |
y | Ignored |
返回值 | 说明 |
---|---|
self | 无 |
fit_transform(self, X, y=None, **fit_params)
拟合数据,然后转换它。
使用可选参数fit_params
将transformer
与X
和y
匹配,并返回X
的转换版本。
参数 | 说明 |
---|---|
X | {array-like, sparse matrix, dataframe} of shape (n_samples, n_features) |
Y | ndarray of shape (n_samples,), default=None 目标值 |
fit_params | dict 其他拟合参数。 |
返回值 | 说明 |
---|---|
X_new | ndarray array of shape (n_samples, n_features_new) 转换过的数据 |
get_covariance(self)
用因子分析模型计算数据协方差。
cov = components_.T * components_ + diag(noise_variance)
返回值 | 说明 |
---|---|
cov | array, shape (n_features, n_features) 数据的协方差估计。 |
get_params(self, deep=True)
获取估计器的参数。
参数 | 说明 |
---|---|
deep | bool, default=True 如果为真,将返回此估计器的参数以及包含的作为估计器的子对象。 |
返回值 | 说明 |
---|---|
params | mapping of string to any 参数名称映射到它们的值。 |
get_precision(self)
利用因子分析模型计算数据精度矩阵。
返回值 | 说明 |
---|---|
precision | array, shape (n_features, n_features) 数据的预测精度。 |
score(self, X, y=None)
计算样本的平均似然对数
参数 | 说明 |
---|---|
X | array, shape (n_samples, n_features) 数据 |
y | Ignored |
返回值 | 说明 |
---|---|
II | float 样本在当前模型下的对数似然平均数。 |
score_samples(self, X)
计算每个样本的似然对数
参数 | 说明 |
---|---|
X | array, shape (n_samples, n_features) 数据 |
返回值 | 说明 |
---|---|
II | array, shape (n_samples,) 每个样本在当前模型下的对数似然 |
set_params(self, **params)
设置这个估计器的参数。
该方法适用于简单估计器和嵌套对象(如管道)。后者具有形式为
参数 | 说明 |
---|---|
**params | dict 估计参数 |
返回值 | 说明 |
---|---|
self | object 估计参数 |
transform(self, X)
利用模型对X进行降维。
计算潜在变量的期望平均值。见Barber, 21.2.33 (or Bishop, 12.66).
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) 训练数据 |
参数 | 说明 |
---|---|
X_new | array-like, shape (n_samples, n_components) X的潜变量。 |