六、FastICA
FastICA
类是scikit-learn
提供的FastICA
模型,其原型为:class sklearn.decomposition.FastICA(n_components=None, algorithm=’parallel’,
whiten=True, fun=’logcosh’, fun_args=None, max_iter=200, tol=0.0001, w_init=None,
random_state=None)[source]
n_components
:一个整数或者None
, 指定独立成分的数量。如果为
None
, 则独立成分的数量为 (观测样本的特征数)。algorithm
:一个字符串,指定求解FastICA
的算法。可以为:'parallel'
'delfation'
whiten
:一个布尔值,指定是否执行白化预处理。如果为
false
,则scikit-learn
并不会对数据进行白化预处理。这要求输入数据已经被白化了。fun
:一个字符串或者可调用对象,指定非线性函数 ,它是 的原函数。可以为:'logcosh'
:表示 ,此时 。exp
:表示 ,此时 。cube
:表示 ,此时 。- 一个可调用对象,参数为 ,返回值为元组:
(函数值,梯度值)
。
fun_args
:一个字典,用于为fun
提供关键字参数。如果
fun='logcosh'
且fun_args
为空,则其默认值为{'alpha':1.0}
。max_iter
: 一个整数,指定最大迭代次数。tol
:一个浮点数,指定迭代时的收敛阈值。w_init
:一个(n_componets,n_componets)
形状的数组或者None
, 指定了混合矩阵 的初始化值。random_state
: 一个整数或者一个RandomState
实例,或者None
。指定随机数种子。
属性:
components_
: 一个形状为(n_componets,n_features)
的矩阵,给出了分离矩阵 。mixing_
: 一个形状为(n_features,n_components)
的矩阵,给出了混合矩阵 。n_iter_
:一个整数,给出了迭代次数。- 如果算法是
'deflation'
,则它是每个分量上迭代次数的最大值。 - 否则它是算法收敛时的总迭代次数。
- 如果算法是
方法:
fit(X[, y])
:训练模型。transform(X)
:执行独立成分分离,返回独立因子数据集。fit_transform(X[, y])
:训练模型并执行独立成分分离,返回独立因子数据集。inverse_transform(X)
:执行独立成分分离的逆运算,返回混合之后的观测数据集。