선택 쌍으로 절대 쌍별 상관의 합을 고려해 봅시다. 우리는 따라서 벡터 추구 와 있는 최소화 할 수 어디에.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]
상용 솔버를 사용하여 쉽게 해결할 수 있습니다. 그러면 결과는 에서 가장 큰 구성 요소로 제공됩니다 .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
. 결정기에 대해 특별히 생각하고 있습니까?