正交PCALPP的MATLAB实现

本博客转载自博客链接,已获得授权。

正交PCALPP代码实现

0.引言

​ 传统基于主成分分析 (Principal component analysis, PCA) 的数据降维方法在提取有效特征信息时只考虑全局结构保持而未考虑样本间的局部近邻结构保持问题, 本文提出一种改进全局结构保持算法的特征提取与降维方法,改进的特征提取与降维方法将流形学习中局部结构保持 ( Locality preserving projection, LPP) 的思想融入主成 分分析的目标函数中, 使样本投影后的特征空间保持原始样本空间的整体结构, 还保持样本空间相似的局部近邻结构, 包含更丰富的特征信息,并且引入正交约束消除特征冗余。采用UCI数据集进行降维可视化分析。

1.原理

1.1 PCA目标函数

​ PCA的核心是通过投影矩阵A将高维数据降成低维数据,实现数据沿该坐标系的分布方差最大化,能够实现最大化保持数据的全局结构特性,其目标函数如下:

m a x t r ( A ′ X X ′ A ) max tr(A'XX'A) maxtr(AXXA)

1.2 LPP目标函数


m i n t r ( A ′ X L X ′ A ) ; L = D − W ; s t . A ′ X D X ′ A = I min tr(A'XLX'A); L=D-W; st.A'XDX'A=I mintr(AXLXA);L=DW;st.AXDXA=I

1.3 CVPCALPP原理


m a x t r ( l A ′ X X ′ A − ( 1 − l ) A ′ X L X ′ A ) ; s t . A ′ X D X ′ A = I ; 其 中 : l 是 用 于 平 衡 P C A 与 L P P 这 两 个 目 标 函 数 的 权 重 系 数 max tr(lA'XX'A-(1-l)A'XLX'A);st.A'XDX'A=I;其中:l是用于平衡PCA与LPP这两个目标函数的权重系数 maxtr(lAXXA(1l)AXLXA);st.AXDXA=I;lPCALPP

s t . a i ′ ∗ a j = 1 ( i = j ) ; 否 则 : a i ′ ∗ a j = 0 ; ( 正 交 约 束 ) st.ai'*aj=1(i=j);否则:ai'*aj=0;(正交约束) st.aiaj=1(i=j);aiaj=0

2.方案验证

clc;clear;close all
load wine;fea=double(wine);gnd=wine_labels;
options = [];
options.Metric = 'Euclidean';
options.NeighborMode = 'KNN';
options.k = 5;
options.t = 0.1;
options.delta=1000;
options.bSelfConnected = 1;
options.WeightMode = 'HeatKernel';
options.ReducedDim = 6;
[W,~] = constructW3(fea,gnd,options);%监督核欧式距离
%W = constructW(fea);%欧氏距离
%[W,~] = constructW2(fea,options);%非监督核欧式距离

% [eigvector1, eigvalue1, meanData, Y]=PCA(fea, options);
%[eigvector2, eigvalue2, Y] = LPP(fea, W, options);
[eigvector,eigvalue, Y] = CVPCALPP(fea,W,options);
    
%%
figure
for i=1:max(gnd)
    n=find(gnd==i);
    plot3(fea(n,1),fea(n,2),fea(n,3),'*')%原始数据
    hold on
    grid on
end
mappedX1=Y;
figure
for i=1:max(gnd)
    n=find(gnd==i);
    plot3(mappedX1(n,1),mappedX1(n,2),mappedX1(n,3),'*')
    hold on
    grid on
end
legend('1','2','3')


在这里插入图片描述

​ 图1 原始数据可视化

在这里插入图片描述

​ 图2 本文方法

3.结论

​ 从图上可以,本文方法聚类效果更好。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值