• n_components:一个整数,指定了字典大小 。

      • alpha:一个浮点数,指定了三、字典学习 - 图1 正则化项的系数 ,它控制了稀疏性。

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

      • tol:一个浮点数,指定了收敛阈值。

      • fit_algorithm:一个字符串,指定了求解算法。可以为:

        • 'lars':使用least angle regression算法来求解。
        • 'cd':使用coordinate descent算法来求解。
      • transform_algorithm:一个字符串,指定了数据转换的方法。可以为:

        • 'lasso_lars':使用Lars算法来求解。
        • 'lasso_cd':使用coordinate descent算法来求解。
        • 'lars':使用least angle regression算法来求解。
        • 'omp':使用正交匹配的方法来求解。
        • 'threshold':通过字典转换后的坐标中,小于 transform_alpha 的特征的值都设成零。
      • 只用于算法和omp算法(omp算法中,可能被transform_alpha参数覆盖)。

      • transform_alpha:一个浮点数,默认为 1.0 。

        • 如果算法为threshold,则该参数指定了特征为零的阈值。
        • 如果算法为omp,则该参数指定了重构误差的阈值,此时它覆盖了transform_n_nonzero_coefs参数。
      • split_sign:一个布尔值,指定是否拆分系数特征向量为其正向值和负向值的拼接。

      • n_jobs:一个整数,指定并行性。

      • code_init:一个数组,指定了初始编码,它用于字典学习算法的热启动。

      • dict_init:一个数组,指定了初始字典,它用于字典学习算法的热启动。

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

    1. 属性:

      • components_:一个数组,存放学到的字典。
      • error_:一个数组,存放每一轮迭代的误差。
      • n_iter_:一个整数,存放迭代的次数。
    2. 方法:

      • :学习字典。
      • transform(X):根据学到的字典进行编码。
      • fit_transform(X,y):学习字典并执行字典编码。

    3.2 MiniBatchDictionaryLearning

    1. MiniBatchDictionaryLearning也是字典学习,它主要用于大规模数据。它每次训练一批样本,然后连续多次训练。

    2. MiniBatchDictionaryLearning 的原型为:

      1. n_iter=1000, fit_algorithm='lars', n_jobs=1, batch_size=3, shuffle=True,
      2. dict_init=None, transform_algorithm='omp', transform_n_nonzero_coefs=None,
      3. transform_alpha=None, verbose=False, split_sign=False, random_state=None)
      • n_iter:一个整数,指定了总的执行迭代的数量。
      • batch_size:一个整数,指定了每次训练时的样本数量。
      • shuffle:一个布尔值,指定在训练每一批样本之前,是否对该批次样本进行混洗。
      • 其它参数参考DictionaryLearning
    3. 属性:

      • components_:一个数组,存放学到的字典。
      • inner_stats_:数组的元组,存放算法的中间状态。
      • n_iter_:一个整数,存放迭代的次数。
      • fit(X,y):学习字典。
      • transform(X):根据学到的字典进行编码。
      • fit_transform(X,y):学习字典并执行字典编码。