sklearn.decomposition.fastica?

sklearn.decomposition.fastica(X, n_components=None, *, algorithm='parallel', whiten=True, fun='logcosh', fun_args=None, max_iter=200, tol=0.0001, w_init=None, random_state=None, return_X_mean=False, compute_sources=True, return_n_iter=False)

[源碼]

進行快速的獨立成分分析。

用戶指南中閱讀更多內容

參數 說明
X array-like, shape (n_samples, n_features)
訓練向量,其中n_samples為樣本個數,n_features為特征個數。
n_components int, optional
要提取的成分數量。如果沒有,則不執行降維操作。
algorithm {‘parallel’, ‘deflation’}, optional
應用平行或傾斜筋膜算法。
whiten boolean, optional
如果為真,則執行數據的初始增白。如果為假,則假定數據已經進行了預處理:數據應該居中、正規化和白色。否則你會得到不正確的結果。在這種情況下,參數n_components將被忽略。
fun string or function, optional. Default: ‘logcosh’
用來近似負熵的G函數的函數形式。可以是' logcosh ' ' exp '或' cube '您還可以提供自己的功能。它應該返回一個元組,其中包含函數的值及其在點中的導數。導數應沿最后一個維數求平均。例子:
def my_g (x):

返回x ** 3, np.mean(3 * x ** 2,axis=-1)
fun_args dictionary, optional
要發送到函數形式的參數。如果為空或無,如果fun= ' logcosh ', fun_args將取值{' alpha ': 1.0}
max_iter int, optional
要執行的最大迭代次數。
tol float, optional
一個給定容差的正標量,在該容差處未混合矩陣被認為是收斂的。
w_init (n_components, n_components) array, optional
初始解混維數組(n.comp,n.comp)。如果沒有(默認),那么一個普通r.v數組。使用的。
random_state int, RandomState instance, default=None
用于初始化未指定的w_init,使用正態分布。傳遞一個int,以便在多個函數調用中得到可重復的結果。詳見術語表
return_X_mean bool, optional
如果為真,也返回X_mean。
compute_sources bool, optional
如果錯誤,則不計算源,而只計算旋轉矩陣。這可以在處理大數據時節省內存。默認值為True。
return_n_iter bool, optional
是否返回迭代次數。
返回值 說明
K array, shape (n_components, n_features)
如果whiten是“真”,K是預白矩陣,它將數據投影到第一個n_components主成分上。如果whiten為False, K為None。
W array, shape (n_components, n_components)
白化后將數據分解的方陣。混合矩陣是矩陣wk的偽逆如果K不是0,否則它是W的逆。
S array, shape (n_samples, n_components)
估計源矩陣
X_mean array, shape (n_features, )
特征的平均值。僅當return_X_mean為真時返回。
n_iter int
如果算法是“通縮”,n_iter是在所有組件上運行的最大迭代次數。否則它們就是收斂所需要的迭代次數。只有當return_n_iter被設置為True時才會返回。

注意

我們認為數據矩陣X是一個非高斯(獨立)分量的線性組合,即X = AS,其中S的列包含獨立分量,a是一個線性混合矩陣。簡而言之,ICA試圖通過估計一個未混合矩陣W來分解數據(un-mix' the data by estimating an un-mixing matrix W where ``S = W K X.),其中' ' S = wk X。“雖然FastICA被提議估計的來源和特征一樣多,但通過設置n_components < n_features可以估計得更少。”在這種情況下K不是一個方陣估計的a是w k的偽逆。

這個實現最初是為shape [n_features, n_samples]的數據而設計的。在應用算法之前,輸入被調換了位置。這使得fortran順序輸入的速度稍微快了一些。

Algorithms and Applications, Neural Networks, 13(4-5), 2000, pp. 411-430