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]):只训练一个批次的样本