資源簡介
用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()?????????%?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
評論
共有 條評論