用于解决大规模l1正则化最小二乘问题的python包。
l1ls的Python项目详细描述
这是用 Python。该代码基于Stephen Boyd’s l1_ls page上提供的Matlab代码。
安装
您可以直接从源安装放气边缘:
pip install git+https://github.com/musically-ut/l1-ls.py.git@master#egg=l1ls
这个包也可以在PyPi上找到。
pip install l1ls
用法
模块公开两个功能:
- l1ls(A, y, lmbda, x0=None, At=None, m=None, n=None, tar_gap=1e-3, quiet=False, eta=1e-3, pcgmaxi=5000),和,
- l1ls_nonneg(A, y, lmbda, x0=None, At=None, m=None, n=None, tar_gap=1e-3, quiet=False, eta=1e-3, pcgmaxi=5000)
它们可以如下使用:
import l1ls as L import numpy as np A = np.array([[1, 0, 0, 0.5], [0, 1, 0.2, 0.3], [0, 0.1, 1, 0.2]]) x0 = np.array([1, 0, 1, 0], dtype='f8') # Original signal y = A.dot(x0) # noise free signal lmbda = 0.01 # regularization parameter rel_tol = 0.01 [x, status, hist] = L.l1ls(A, y, lmbda, tar_gap=rel_tol) # answer_x = np.array([0.993010, 0.00039478, 0.994096, 0.00403702])
如果矩阵A是稀疏的,则将其传入CSR format 最佳性能的格式。
参考
- S.-J.Kim、K.Koh、M.Lustig、S.Boyd和D.Gorinevsky。一个 大尺度l1正则化最小二乘的内点法, (2007),《信号处理选定主题的ieee期刊》, 1(4):606-617。