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