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
(17977)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_paramstransformerXy匹配,并返回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的潛變量。