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的潛變量。 |