PCA-LPP代码实现
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(A′XX′A)
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(A′XLX′A);L=D−W;st.A′XDX′A=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(lA′XX′A−(1−l)A′XLX′A);st.A′XDX′A=I;其中:l是用于平衡PCA与LPP这两个目标函数的权重系数
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')
图1 原始数据可视化
图2 本文方法
3.结论
从图上可以,本文方法聚类效果更好。