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