当前位置:首页 >> 信息与通信 >>

lle算法详解及matlab代码实现


LLE 算法代码 % LLE ALGORITHM (using K nearest neighbors) % % [Y] = lle(X,K,dmax) % % X = data as D x N matrix (D = dimensionality, N = #points) %(D = 点的维数, N = 点数) % K = number of neighbors(领域点的个

数) % dmax = max embedding dimensionality(最大嵌入维数) % Y = embedding as dmax x N matrix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%% function [Y] = lle(X,K,d) [D,N] = size(X); %D 是矩阵的行数,N 是矩阵的列数 fprintf(1,'LLE running on %d points in %d dimensions\n',N,D);

% STEP1: COMPUTE PAIRWISE DISTANCES & FIND NEIGHBORS %寻找邻居数据点 fprintf(1,'-->Finding %d nearest neighbours.\n',K); X2 = sum(X.^2,1); %矩阵 X 中的每个元素以 2 为指数求幂值,并且竖向相加 %if two point X=(x1,x2),Y=(y1,y2) %than the distance between X and Y is sqtr((x1-y1) .^2+ (x2-y2).^2) distance = repmat(X2,N,1)+repmat(X2',1,N)-2*X'*X; %repmat 就是在行方向把 X2 复制成 N 份,列方向为 1 份

[sorted,index] = sort(distance); %sort 是对矩阵排序,sorted 是返回对每列排序的结果,index 是返回排 %序后矩阵中每个数在矩阵未排序前每列中的位置 neighborhood = index(2:(1+K),:); %计算 neighborhood(看 distance 定义理解)的时候,要记住 X 中 N 代表的是点数,D 代 %表每个点得维数, neighborhood 进行 sort 后会找出每个点 X 的每列表示) 把 (用 最近的%K
个列

% STEP2: SOLVE FOR RECONSTRUCTION WEIGHTS %计算重构权 fprintf(1,'-->Solving for reconstruction weights.\n'); if(K>D) fprintf(1,' else tol=0; end W = zeros(K,N); for ii=1:N z = X(:,neighborhood(:,ii))-repmat(X(:,ii),1,K); % shift ith pt to origin C = z'*z; C = C + eye(K,K)*tol*trace(C); W(:,ii) = C\ones(K,1); W(:,ii) = W(:,ii)/sum(W(:,ii)); end; % STEP 3: COMPUTE EMBEDDING FROM EIGENVECTS OF COST MATRIX M=(I-W)'(I-W) %计算矩阵 M=(I-W)'(I-W)的最小 d 个非零特征值对应的特征向量 % local covariance % regularlization (K>D) % solve Cw=1 % enforce sum(w)=1 [note: K>D; regularization will be used]\n'); tol=1e-3; % regularlizer in case constrained fits are ill conditioned

fprintf(1,'-->Computing embedding.\n'); % M=eye(N,N); % use a sparse matrix with storage for 4KN nonzero elements M = sparse(1:N,1:N,ones(1,N),N,N,4*K*N); for ii=1:N w = W(:,ii); jj = neighborhood(:,ii); M(ii,jj) = M(ii,jj) - w'; M(jj,ii) = M(jj,ii) - w; M(jj,jj) = M(jj,jj) + w*w'; end; % CALCULATION OF EMBEDDING options.disp = 0; options.isreal = 1; options.issym = 1; [Y,eigenvals] = eigs(M,d+1,0,options); %[Y,eigenvals] = jdqr(M,d+1);%change in using JQDR func Y = Y(:,2:d+1)'*sqrt(N); % bottom evect is [1,1,1,1...] with eval 0

fprintf(1,'Done.\n'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%% % other possible regularizers for K>D % % C = C + tol*diag(diag(C)); C = C + eye(K,K)*tol*trace(C)*K; % regularlization % regularlization


相关文章:
lle算法详解及matlab代码实现
lle算法详解及matlab代码实现_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档lle算法详解及matlab代码实现_IT/计算机_专业资料。LLE 相关知识详解网址:http...
lle算法详解及matlab代码实现
lle算法详解及matlab代码实现_信息与通信_工程科技_专业资料。lle算法matlab代码实现LLE 算法代码 % LLE ALGORITHM (using K nearest neighbors) % % [Y] = lle...
LLE算法的matlab代码
LLE算法matlab代码_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档LLE算法matlab代码_计算机软件及应用_IT/计算机_专业资料。%%%%%...
LLE算法代码
LLE算法代码_IT/计算机_专业资料。LLE的matlab算法代码 LLE 算法代码 2010-05-24 20:44:40| 分类: 代码算法 | 标签: |字号大中小 订阅 QQ 好友提供,流行...
LLE算法及其改进算法介绍
LLE 及其改进算法介绍 Locally linear embedding (LLE) (Sam T.Roweis and Lawrence K.Saul, 2000)以及 Supervised locally linear embedding (SLLE) (Dick and ...
四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps
四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps_计算机软件及应用_IT/计算机_专业资料。四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps ...
LLE
LLE_数学_自然科学_专业资料。LLE算法的简单介绍LLE 流形学习算法的介绍 1. 算法思路 LLE 算法是一种局部特性保持方法。它的核心是保持降维先后近邻之间的局部线性...
奇异值分解与主成分分析
答: (1)LLE 分析:LLE(局部线性嵌入)方法是流形学习的一种算法。 流形学习,...MATLAB 对重构权值矩阵 W 的实现如下: 步骤三:求低维嵌入 Y 由于重构权向量...
计算机视觉代码合集
是一篇 很好的算法代码总结文档,转载在此供大家...LLE http: LaplacianEigenmaps http: Diffusion maps ...D. Kovesi. MATLAB and Octave Functions for ...
drtoolbox使用
可以用这个代码代替 http://www.mathworks.com/matlabcentral/fileexchange/18685...Isomap/LLE/Laplacian Eigenmaps/LTSA 算法使用后,数据点数减少的问题。这个是 ...
更多相关标签:
lle算法 详解 | sift算法matlab详解 | icp算法详解 matlab | fft算法c语言实现详解 | mallat算法c实现详解 | svm算法matlab实现 | 感知器算法matlab实现 | fft算法的matlab实现 |