• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: matlab  ADMM  Group  Lasso  

资源简介

用ADMM算法解决Group Lasso问题的matlab实现,包含测试用的例子。

资源截图

代码片段和文件信息

randn(‘seed‘ 0);
rand(‘seed‘0);

m = 1500;       % amount of data
K = 200;        % number of blocks
partition = randi(50 [K 1]);

n = sum(partition); % number of features
p = 100/n;          % sparsity density  

% generate block sparse solution vector
x = zeros(n1);
start_ind = 1;
cum_part = cumsum(partition);
for i = 1:K
    x(start_ind:cum_part(i)) = 0;
    if( rand() < p)
        % fill nonzeros
        x(start_ind:cum_part(i)) = randn(partition(i)1);
    end
    start_ind = cum_part(i)+1;
end

% generate random data matrix
A = randn(mn);

% normalize columns of A
A = normc(A);

% generate measurement b with noise
b = A*x + sqrt(0.001)*randn(m1);

% lambda max
start_ind = 1;
for i = 1:K
    sel = start_ind:cum_part(i);
    lambdas(i) = norm(A(:sel)‘*b);
    start_ind = cum_part(i) + 1;
end
lambda_max = max(lambdas);

% regularization parameter
lambda = 0.1*lambda_max; 

xtrue = x;   % save solution

%% Solve problem

[x history] = group_lasso(A b lambda partition 1.0 1.0);

%% Reporting
K = length(history.objval);                                                                                                        

h = figure;
plot(1:K history.objval ‘k‘ ‘MarkerSize‘ 10 ‘LineWidth‘ 2); 
ylabel(‘f(x^k) + g(z^k)‘); xlabel(‘iter (k)‘);

g = figure;
subplot(211);                                                                                                                    
semilogy(1:K max(1e-8 history.r_norm) ‘k‘ ...
    1:K history.eps_pri ‘k--‘  ‘LineWidth‘ 2); 
ylabel(‘||r||_2‘); 

subplot(212);                                                                                                                    
semilogy(1:K max(1e-8 history.s_norm) ‘k‘ ...
    1:K history.eps_dual ‘k--‘ ‘LineWidth‘ 2);   
ylabel(‘||s||_2‘); xlabel(‘iter (k)‘); 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1893  2018-12-11 10:27  example.m

     文件       3606  2018-12-11 10:34  group_lasso.m

----------- ---------  ---------- -----  ----

                 5499                    2


评论

共有 条评论