PCA-LPP特征提取特征降维

PCA-LPP代码实现

文章目录

  • PCA-LPP代码实现
    • 0.引言
    • 1.原理
      • 1.1 PCA目标函数
      • 1.2 LPP目标函数
      • 1.3 PCA-LPP原理
    • 2.方案验证
    • 3.结论

0.引言

​ 提出集合主成分分析与局部保持嵌入的流形学习特征降维方法。该方法通过结合主成分分析(PCA)与局部保持嵌入(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 PCA-LPP原理


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

2.方案验证

clc;clear;close all
load wine;fea=double(wine);gnd=wine_labels;
options = [];
options.Metric = 'Euclidean';
options.NeighborMode = 'KNN';
options.k = 10;
options.t = 1;
options.delta=100;
options.bSelfConnected = 1;
options.WeightMode = 'HeatKernel';
options.ReducedDim = 6;
options.PCARatio = 1;
W = constructW(fea);
%[eigvector1, eigvalue1, meanData, Y]=PCA(fea, options);
%[eigvector2, eigvalue2, Y] = LPP(fea, W, options);
[eigvector3,eigvalue3, Y] = PCALPP(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')

PCA-LPP特征提取特征降维_第1张图片 图1 原始数据可视化

PCA-LPP特征提取特征降维_第2张图片
​ 图2 本文方法

3.结论

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

你可能感兴趣的:(特征提取和降维,python)