数据预处理——字典学习

DictionaryLearning

模型原型

class sklearn.decomposition.DictionsryLearning(n_components=None,alpha=1,max_iter=1000,tol=1e-08,fit_algorithm=’lars’,transform_algorithm=’omp’,transform_n_nonzero_coefs=None,transform_alpha=None,n_jobs=1,code_init=None,dict_init=None,verbose=False,split_sign=False,random_state=None)
参数

  • n_components:指定字典大小k
  • alpha:指定L1L1,正则化项的系数λ,它控制了稀疏性
  • 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的属性都设成0
  • transform_n_nonzero_coefs:指定每一列中非零元素的个数。只用于lars算法和omp算法
  • transform_alpha
    • 如果算法为lasso_lars或者lasso_cd,则该参数指定了L1正则化项的系数
    • 如果算法为threshold,则该参数指定了属性为0的阙值
    • 如果算法为omp,则该参数指定了重构误差的阙值
  • n_jobs
  • code_init:指定初始编码
  • dict_init:指定初始字典
  • verbose
  • split_sign:是否拆分系数特征向量为其正向值和负向值的拼接
  • random_state

属性

  • components_:存放学到的字典
  • error_:存放每一轮迭代的误差
  • n_iter:存放迭代的次数

方法

  • fit(X,y)
  • transform(X)
  • fit_transform(

X,y)
示例

from sklearn.decomposition import DictionaryLearning
X=[
    [1,2,3,4,5],
    [6,7,8,9,10],
    [10,9,8,7,6],
    [5,4,3,2,1]
]
print('before transform:',X)
dct=DictionaryLearning(n_components=3)
dct.fit(X)
print('components is:\n',dct.components_)
print('after transform:\n',dct.transform(X))

MiniBatchDictionaryLearning

模型原型

class sklearn.decomposition.MiniBatchDictionaryLearning(n_components=None,alpha=1,n_iter=1000,fit_algorithm=’lars’, n_jobs=1,batch_size=3,shuffle=True,dict_init=None,transform_algorithm=’omp’,transform_n_nonzero_coefs=None, transform_alpha=None,verbose=False,split_sign=False,random_state=None)
参数

  • n_components:指定字典大小k
  • alpha:指定L1L1,正则化项的系数λ,它控制了稀疏性
  • n_iter
  • fit_algorithm:指定求解算法
    • ’lars’:least angle regression算法
    • ‘cd’:coordinate descent算法
  • n_jobs
  • batch_size:每次训练时的样本数量
  • shuffle:训练样本之前是否进行混洗
  • dict_init:初始字典
  • transform_algorithm:指定数据转换方法
    • ’lasso_lars’:Lars算法
    • ‘lasso_cd’:coordinate descent算法
    • ‘lars’:least angle regression算法
    • ‘omp’:正交匹配方法
    • ‘threshold’:通过字典转换后的坐标中,小于transform_alpha的属性都设成0
  • transform_n_nonzero_coefs:指定每一列中非零元素的个数。只用于lars算法和omp算法
  • transform_alpha
    • 如果算法为lasso_lars或者lasso_cd,则该参数指定了L1正则化项的系数
    • 如果算法为threshold,则该参数指定了属性为0的阙值
    • 如果算法为omp,则该参数指定了重构误差的阙值
  • verbose
  • split_sign:是否拆分系数特征向量为其正向值和负向值的拼接
  • random_state

属性

  • components_:存放学到的字典
  • innerstats:存放算法的中间状态
  • n_iter:存放迭代的次数

方法

  • fit(X,y)
  • transform(X)
  • fit_transform(X,y)
  • partial_fit(X[,y,iter_offset]):只训练一个批次的样本

猜你喜欢

转载自blog.csdn.net/weixin_39777626/article/details/79936293