具体内容大家可以看一下参考文献的原文,这里附上我的自己编的MATLAB程序代码:

% SSLLE算法
% [Y] = sslle(X,K,d,l,r)
% X    :data as D x N matrix (D = dimensionality, N = #points)
% K    :number of neighbors
% d :max embedding dimensionality
% Y    :embedding as dmax x N matrix
% l    :标号
% r    :调节因子当r=0时与LLE相同
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [Y] = sslle(X,K,d,l,r)
[D,N] = size(X);
%fprintf(1,'LLE running on %d points in %d dimensions\n',N,D);%% Step1: compute pairwise distances & find neighbour
%fprintf(1,'-->Finding %d nearest neighbours.\n',K);
X2 = sum(X.^2,1);
distance = repmat(X2,N,1)+repmat(X2',1,N)-2*X'*X;
[sorted,index] = sort(distance);
neighborhood = index(2:(1+K),:);% Step2: solve for recinstruction 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
elsetol=0;
endW = zeros(K,N);
for ii=1:Nz = X(:,neighborhood(:,ii))-repmat(X(:,ii),1,K); % shift ith pt to origin%创建一个所有元素的值均为 X(:,ii) 的 1×K 矩阵。%%调节距离,已验证正确!%    r = 0.6;for j = 1:Klj = neighborhood(j,ii);if l(ii,1)*l(lj,1) == 0;elseif l(ii,1) == l(lj,1);z(:,j )= (1-r)*z(:,j);else l(ii,1) ~= l(lj,1);z(:,j) = (1+r)*z(:,j);endendC = z'*z;                                        % local covarianceC = C + eye(K,K)*1e-3*trace(C);C = C + eye(K,K)*tol*trace(C);                   % regularlization (K>D)W(:,ii) = C\ones(K,1);                           % solve Cw=1W(:,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(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:Nw = 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 = Y(:,2:d+1)'*sqrt(N); % bottom evect is [1,1,1,1...] with eval 0   根号
eigenvalsfprintf(1,'Done.\n');

这是在网上最常见的一个LLE算法程序基础上改的,编写的可能不是太好,仅供大家参考。

参考文献:

  1. 张长帅, 周大可, 杨欣. 一种基于核的半监督局部线性嵌入方法[J]. 计算机工程, 2011, 37(20):157 -159.

一种基于局部线性嵌入的半监督方法——半监督局部线性嵌入(SSLLE),MATLAB程序代码相关推荐

  1. sar图像去噪matlab,一种基于总曲率的SAR图像变分去噪方法与流程

    本发明属于数字图像处理技术领域,具体涉及一种基于总曲率的SAR图像变分去噪方法. 背景技术: : 相干斑噪声是合成孔径雷达(Synthetic Aperture Radar,简称SAR)图像的重要特征 ...

  2. linux 目录防篡改,一种基于Linux虚拟文件系统的防篡改方法及系统的制作方法

    一种基于Linux虚拟文件系统的防篡改方法及系统的制作方法 [技术领域] [0001]本发明涉及文件防护技术领域,特别涉及一种基于Linux虚拟文件系统的防篡改方法及系统. [背景技术] [0002] ...

  3. 机器人测钢卷直径_一种基于关节机器人的冷轧钢卷卷芯焊接方法与流程

    本发明涉及冶金技术领域,特别涉及一种基于关节机器人的冷轧钢卷卷芯焊接方法. 背景技术: 在冷轧罩式退火工序,钢卷采用立式吊具吊运,为防止钢卷卷芯松动导致卷芯钢带损坏和抽芯故障,必须将钢卷卷芯内圈焊接固 ...

  4. 肺结节目标检测_一种基于CT图像的肺结节检测方法及系统与流程

    本发明属于医学图像分析和计算机辅助诊断等技术领域,更具体地,涉及一种基于CT图像的肺结节检测方法及系统. 背景技术: 肺癌是导致患癌死亡的最危险的疾病之一,其发病率占所有癌症的三分之二,且5年存活率为 ...

  5. python爬取电子病历_一种基于中文电子病历的实体识别方法技术

    本发明专利技术提供了一种基于中文电子病历的实体识别方法,涉及医疗实体识别技术领域.针对目前国内缺少公开中文电子病历标注语料库的缺陷,本发明专利技术通过构建整理医学词典,提出了一种半自动语料库标注方法, ...

  6. 一种基于实时分位数计算的系统及方法

    一.问题描述与技术挑战 在实际工作中,我们发现许多业务场景中都有对某一数值型指标实时统计分位数的需求,一般要求计算结果有很高准确率同时具备极低的计算延迟,实现这类需求给数据RD的开发工作带来一定的挑战 ...

  7. plc控制可调节阀流程图_一种基于PLC神经外科引流控制系统及方法与流程

    本发明属于医疗辅助技术领域,尤其涉及基于PLC神经外科引流控制系统及方法. 背景技术: 神经外科手术患者在做完手术后通常需要安置不同的引流管进行各种引流,这是一种常用的神经外壳急救手段,根据导管末端位 ...

  8. 一种基于数据表的共享智慧的方法

    发明名称: 一种基于数据表的共享智慧的方法 简单法律状态: 有效 申请号: CN201610631230.7 申请日: 2016-08-04 公开(公告)号: CN106293727B 公开(公告)日 ...

  9. 差分隐私 matlab,一种基于差分隐私保护的谱聚类方法与流程

    本发明属于隐私保护技术领域,提供了一种基于差分隐私保护的谱聚类方法. 背景技术: 近年来,随着互联网与信息技术的蓬勃发展,海量数据的产生可以为研究者们提供许多有效的信息资源,对这些海量数据进行挖掘分析 ...

最新文章

  1. 八种方法防止数据库被下载
  2. SharePoint 2010 工作流解决方案:将 SharePoint Designer 可重用工作流导入 Visual Studio...
  3. 关于数据可视化入门,看这一篇够了
  4. 时间序列分析之:函数分解decompose
  5. 在业务层实现记录请求日志
  6. Spark 宽依赖和窄依赖
  7. 腾讯TAD Sim2.0领跑自动驾驶仿真市场 双擎驱动构建新一代仿真平台
  8. JMeter如何切换成中文详细步骤
  9. 接触的第二个引擎 scaleform
  10. android 渠道方案,Android多渠道打包时获取当前渠道的方法
  11. python log函数_python装饰器的使用
  12. 计算机网络考试难吗,网络教育统考中的计算机考试难不难,
  13. 方正BPM开发平台(FIX ES2007)帮助手册+知识库
  14. 经典算法:计算两个日期之间的天数
  15. 有关javaSE下载时,环境配置path不成功,在cmd命令中java,javac,java -version出现不是内部或外部命令的现象处理
  16. cb.conjunction()的意思
  17. html5创建三次贝塞尔曲线,HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
  18. HashMap为什么用红黑树而不用跳表?redis的zset为什么用跳表而不用红黑树?
  19. Python的电子邮件操作
  20. 如何在Axure中设置根据标签导航切换页面?

热门文章

  1. 信息学奥赛一本通C++语言——1018: 其他数据类型存储空间大小
  2. Linux内核驱动如何编写?我们先从字符驱动入门开始
  3. python调用函数_Python 函数中的 4 种参数类型
  4. linux 没有那个文件或目录_【新视频进度】国庆节至今更新6节quot;嵌入式Linux应用开发基础quot;...
  5. Kubesphere V2.1.1安装后开启可拔插组件DevOps(2)
  6. [实验流体力学][Matlab] pi 定理的应用
  7. mysql参数配置详情_MySQL配置文件mysql.ini参数详解、MySQL性能优化
  8. vantUI所有的弹出层组件(代码、调用、示例) - 集合篇
  9. WebStorm 代码文字发虚模糊 - 解决篇
  10. 如何使用router-link对象方式传递参数?