资源简介

局部线性嵌入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)
clc;clear
load MAIN_data1
feature=MAIN_data;
%4种故障模式
X=[feature(1:180:);feature(541:720:);feature(1081:1260:);feature(1621:1800:)]‘;    %取5层信号小波包分解后的能量特征和9个时域特征
K=9;                                             %近邻个数
% d=3;                                            %降维个数
[DN] = size(X);                                  %D行N列,一列代表一个样本,共有N个样本
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);                               %对每列求和,其中一列代表一个样本,所以X2大小为1xN
% distance = repmat(X2N1)+repmat(X2‘1N)-2*X‘*X;
distance = squareform(pdist(X‘ ‘euclidean‘));     %计算欧式距离
[sortedindex] = sort(distance);                  %对样本间的距离按从小到大排序
neighborhood = index(2:(1+K):);                  %选取前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(

评论

共有 条评论