六、FastICA

  1. FastICA类是scikit-learn提供的FastICA模型,其原型为:

    1. class sklearn.decomposition.FastICA(n_components=None, algorithm=’parallel’,
    2. whiten=True, fun=’logcosh’, fun_args=None, max_iter=200, tol=0.0001, w_init=None,
    3. random_state=None)[source]
    • n_components :一个整数或者None, 指定独立成分的数量。

      如果为None, 则独立成分的数量为 六、FastICA - 图1 (观测样本的特征数)。

    • algorithm:一个字符串,指定求解FastICA 的算法。可以为:

      • 'parallel'
      • 'delfation'
    • whiten:一个布尔值,指定是否执行白化预处理。

      如果为false,则scikit-learn 并不会对数据进行白化预处理。这要求输入数据已经被白化了。

    • fun:一个字符串或者可调用对象,指定非线性函数 六、FastICA - 图2 ,它是 六、FastICA - 图3 的原函数。可以为:

      • 'logcosh':表示 六、FastICA - 图4 ,此时 六、FastICA - 图5
      • exp:表示 六、FastICA - 图6 ,此时 六、FastICA - 图7
      • cube:表示 六、FastICA - 图8 ,此时 六、FastICA - 图9
      • 一个可调用对象,参数为 六、FastICA - 图10 ,返回值为元组:(函数值,梯度值)
    • fun_args:一个字典,用于为fun 提供关键字参数。

      如果fun='logcosh'fun_args 为空,则其默认值为 {'alpha':1.0}

    • max_iter: 一个整数,指定最大迭代次数。

    • tol:一个浮点数,指定迭代时的收敛阈值。

    • w_init:一个 (n_componets,n_componets) 形状的数组或者None, 指定了混合矩阵 六、FastICA - 图11 的初始化值。

    • random_state: 一个整数或者一个RandomState实例,或者None。指定随机数种子。

  2. 属性:

    • components_: 一个形状为(n_componets,n_features) 的矩阵,给出了分离矩阵 六、FastICA - 图12

    • mixing_: 一个形状为(n_features,n_components) 的矩阵,给出了混合矩阵 六、FastICA - 图13

    • n_iter_:一个整数,给出了迭代次数。

      • 如果算法是'deflation',则它是每个分量上迭代次数的最大值。
      • 否则它是算法收敛时的总迭代次数。
  3. 方法:

    • fit(X[, y]):训练模型。
    • transform(X):执行独立成分分离,返回独立因子数据集。
    • fit_transform(X[, y]):训练模型并执行独立成分分离,返回独立因子数据集。
    • inverse_transform(X):执行独立成分分离的逆运算,返回混合之后的观测数据集。