絶対的なペアワイズ相関の合計を選択基準として考えてみましょう。我々は、このようにベクトルシーク用いて、L 1(V )= N最小になるV 'のQ V Q 、I 、J =を| A i j | 。v∈{0,1}Nl1(v)=nv′QvQij=|Aij|
QもAと同様に正定であると仮定すると、問題は制約付き2次最適化問題を解くことに帰着します。
v∗=min v′Qv s.t. l1(v)=n, vi∈{0,1}
これは次のリラクゼーションを示唆しています:
v∗=min v′Qv s.t. l1(v)=n, vi∈[0,1]
市販のソルバーを使用して簡単に解決できます。次に、結果は最大コンポーネントによって与えられます。v ∗nv∗
サンプルMATLABコード:
N=100;
n=10;
% Generate random data
A=rand(N,1000);
C=corrcoef(A');
Q=abs((C+C')/2); % make sure it is symmetric
x = cplexqp(Q,zeros(1,N),[],[], ones(1, N),n, zeros(N,1), ones(N,1));
% If you don't use CPLEX, use matlab's default
% x = quadprog(Q,zeros(1,N),[],[], ones(1, N),n, zeros(N,1), ones(N,1));
assert(abs(sum(x)-n)<1e-10);
% Find the n largest values
I=sort(x);
v=zeros(size(x)); v(x>I(N-n))=1;
assert(abs(sum(v)-n)<1e-10);
% Make sure we do better than 10K random trials
for i=1:10000
vc=zeros(size(x)); vc(randperm(N,n))=1;
assert(sum(vc)==n, 'Wrong l0 norm');
assert(vc'*Q*vc>v'*Q*v, 'Improves result');
end
% Show results
J=find(v==1);
fprintf('The optimal solution total off-diagonal correlations are %1.3f\n', v'*Q*v-n);
fprintf('The matrix:\n');
C(J,J)
metrics to measure the overall correlation
。あなたは特に行列式について考えていますか?