資源簡介
LLE(MATLAB)
官方源碼,附帶有案例

代碼片段和文件信息
%?LLE?ALGORITHM?(using?K?nearest?neighbors)
%
%?[Y]?=?lle(XKdmax)
%
%?X?=?data?as?D?x?N?matrix?(D?=?dimensionality?N?=?#points)
%?K?=?number?of?neighbors
%?dmax?=?max?embedding?dimensionality
%?Y?=?embedding?as?dmax?x?N?matrix
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function?[Y]?=?lle(XKd)
[DN]?=?size(X);
fprintf(1‘LLE?running?on?%d?points?in?%d?dimensions\n‘ND);
%?STEP1:?COMPUTE?PAIRWISE?DISTANCES?&?FIND?NEIGHBORS?
fprintf(1‘-->Finding?%d?nearest?neighbours.\n‘K);
X2?=?sum(X.^21);
distance?=?repmat(X2N1)+repmat(X2‘1N)-2*X‘*X;
[sortedindex]?=?sort(distance);
neighborhood?=?index(2:(1+K):);
%?STEP2:?SOLVE?FOR?RECONSTRUCTION?WEIGHTS
fprintf(1‘-->Solving?for?reconstruction?weights.\n‘);
if(K>D)?
??fprintf(1‘???[note:?K>D;?regularization?will?be?used]\n‘);?
??tol=1e-3;?%?regularlizer?in?case?constrained?fits?are?ill?conditioned
else
??tol=0;
end
W?=?zeros(KN);
for?ii=1:N
???z?=?X(:neighborhood(:ii))-repmat(X(:ii)1K);?%?shift?ith?pt?to?origin
???C?=?z‘*z;????????????????????????????????????????%?local?covariance
???C?=?C?+?eye(KK)*tol*trace(C);???????????????????%?regularlization?(K>D)
???W(:ii)?=?C\ones(K1);???????????????????????????%?solve?Cw=1
???W(:ii)?=?W(:ii)/sum(W(:ii));??????????????????%?enforce?sum(w)=1
end;
%?STEP?3:?COMPUTE?embedDING?FROM?EIGENVECTS?OF?COST?MATRIX?M=(I-W)‘(I-W)
fprintf(1‘-->Computing?embedding.\n‘);
%?M=eye(NN);?%?use?a?sparse?matrix?with?storage?for?4KN?nonzero?elements
M?=?sparse(1:N1:Nones(1N)NN4*K*N);?
for?ii=1:N
???w?=?W(:ii);
???jj?=?neighborhood(:ii);
???M(iijj)?=?M(iijj)?-?w‘;
???M(jjii)?=?M(jjii)?-?w;
???M(jjjj)?=?M(jjjj)?+?w*w‘;
end;
%?CALCULATION?OF?embedDING
options.disp?=?0;?options.isreal?=?1;?options.issym?=?1;?
[Yeigenvals]?=?eigs(Md+10options);
Y?=?Y(:2:d+1)‘*sqrt(N);?%?bottom?evect?is?[1111...]?with?eval?0
fprintf(1‘Done.\n‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%?other?possible?regularizers?for?K>D
%???C?=?C?+?tol*diag(diag(C));???????????????????????%?regularlization
%???C?=?C?+?eye(KK)*tol*trace(C)*K;?????????????????%?regularlization
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2140??2014-02-03?10:09??LLE\lle.m
?????文件???????1305??2014-02-03?10:09??LLE\scurve.m
?????文件???????1213??2014-02-03?10:09??LLE\swissroll.m
?????目錄??????????0??2014-02-03?10:11??LLE
-----------?---------??----------?-----??----
?????????????????4658????????????????????4
評論
共有 條評論