图解机器学习第四部分第十三章——局部保持投影

n = 100;
x=[2*randn(n,1) randn(n,1)];
x = x-repmat(mean(x),[n,1]);%中心化
x2 = sum(x.^2,2);
W=exp(-(repmat(x2,1,n)+repmat(x2',n,1)-2*x*x'));%计算高斯相似度
D=diag(sum(W,2)); % 求对角矩阵
L=D-W; 
z=x'*D*x;
z=(z+z')/2;
[t,v]=eigs(x'*L*x,z,1,'sm');% 求一般化特征值问题。
% t为一般化的特征向量。'sm' 绝对值最小特征值

figure(1);
clf;
hold on;
axis([-6 6 -6 6]);
plot(x(:,1),x(:,2),'rx');
plot(9*[-t(1) t(1)],9*[-t(2) t(2)]);
n = 100;: 定义了数据点的数量。

x=[2*randn(n,1) randn(n,1)];: 生成了一个二维数据集 x,其中每个数据点由两个随机生成的数值组成。

x = x-repmat(mean(x),[n,1]);: 对数据集 x 进行中心化操作,即减去数据的均值,使数据集的均值为零。

x2 = sum(x.^2,2);: 计算每个数据点的平方和。

W=exp(-(repmat(x2,1,n)+repmat(x2',n,1)-2*x*x'));: 根据数据点之间的欧氏距离计算高斯相似度矩阵 W。其中,repmat(x2,1,n)repmat(x2',n,1) 是用于构造矩阵,x*x' 是数据集 x 的协方差矩阵。

D=diag(sum(W,2));: 将相似度矩阵 W 按行求和,并构造成对角矩阵 D。

L=D-W;: 计算局部保持投影的拉普拉斯矩阵 L,即将 D 中的相似度矩阵 W 对角元素减去相似度。

z=x'*D*x;: 计算矩阵 x 在 D 加权下的内积。

z=(z+z')/2;: 将 z 转换为对称矩阵。

[t,v]=eigs(x'*L*x,z,1,'sm');: 求解一般化特征值问题,找到投影矩阵的特征向量。其中,x'*L*x 是广义特征值问题的矩阵,z 是广义特征值问题的约束条件,1 表示找到一个特征向量,'sm' 表示选择最小的特征值。

figure(1); clf; hold on; axis([-6 6 -6 6]);: 创建一个绘图窗口,设定坐标轴范围。

plot(x(:,1),x(:,2),'rx');: 绘制原始数据集 x 中的数据点。

plot(9*[-t(1) t(1)],9*[-t(2) t(2)]);: 绘制投影矩阵的特征向量。这里将特征向量缩放后绘制成直线。

总体而言,这段代码实现了局部保持投影的过程,通过计算数据点之间的高斯相似度矩阵,构建拉普拉斯矩阵,并求解广义特征值问题来获得投影矩阵的特征向量。最后,通过绘图展示原始数据集和投影结果。


在局部保持投影中,D矩阵(Degree Matrix)和W矩阵(Weight Matrix)的减法操作是为了构建拉普拉斯矩阵(Laplacian Matrix),以体现数据点之间的相似度和差异度。

D矩阵是一个对角矩阵,其对角线上的元素由W矩阵的每行元素之和构成。换句话说,D矩阵的对角线元素表示每个数据点与其他数据点的相似度之和。

W矩阵是一个相似度矩阵,其中的每个元素表示两个数据点之间的相似度。通过将W矩阵的相似度值从D矩阵的对应位置减去,可以强调数据点之间的差异度。

因此,通过减去W矩阵,我们得到的拉普拉斯矩阵L = D - W,其中L的对角线元素表示每个数据点与其他数据点的差异度之和,非对角线元素表示数据点之间的相似度差异。

这种构建拉普拉斯矩阵的方式是为了在局部保持投影中保留数据点之间的局部结构,并突出数据点之间的差异度。






首先,我们来看拉普拉斯矩阵L的定义:L = D - A。

度矩阵D是一个对角矩阵,其中对角线上的元素表示每个节点的度数。节点的度数是指与该节点相连的边的数量。
邻接矩阵A表示图中节点之间的连接关系。如果节点i和节点j之间存在一条边,则A[i][j]和A[j][i]的对应元素为1,否则为0。
现在我们来看一下拉普拉斯矩阵的元素L[i][j]表示了什么:

如果 ij(即节点i和节点j不同):

当节点i和节点j之间存在边(即A[i][j] = 1)时,L[i][j] = -1,表示节点i和节点j之间有连接,并且在拉普拉斯矩阵中相应的位置上有一个负权边。
当节点i和节点j之间不存在边(即A[i][j] = 0)时,L[i][j] = 0,表示节点i和节点j之间没有连接。
如果 i = j(即节点i和节点j相同):

L[i][j] = 度矩阵D中对应节点的度数(D[i][i]),表示该节点的度数。
综上所述,拉普拉斯矩阵L的元素L[i][j]可以反映节点之间的连接关系和度数之间的关系:

当节点i和节点j之间有连接时,对应元素L[i][j]-1,表示有一个负权边,反映了节点之间的连接关系。
当节点i和节点j之间没有连接时,对应元素L[i][j]0,表示没有连接,反映了节点之间的连接关系。
对角线上的元素L[i][i]反映了节点i的度数,即与节点i相连的边的数量,反映了度数之间的关系。
因此,拉普拉斯矩阵L的元素可以提供有关图的结构信息,包括节点之间的连接关系和节点的度数。这些信息对于图论中的分析和算法,以及流形学习等数据处理任务都具有重要意义。







在局部保持投影中,我们希望找到一个投影矩阵,可以保持数据点在原始空间中的局部结构。为了实现这一目标,我们需要通过求解广义特征值问题来获得投影矩阵的特征向量。

矩阵L是拉普拉斯矩阵,它描述了数据点之间的差异度和相似度差异。通过计算L的特征向量,我们可以获取到一组投影空间的基向量,这些基向量可以在保持数据点之间的差异度的同时,尽量保持局部结构。

而D矩阵是度矩阵,它描述了每个数据点与其他数据点的相似度之和。通过引入D矩阵,我们可以在求解广义特征值问题时,约束投影矩阵的特征向量要尽量满足每个数据点与其他数据点的相似度之和。

因此,求解广义特征值问题,即求解矩阵L的特征值和特征向量,可以帮助我们找到一个合适的投影矩阵,使得数据点在投影空间中的投影尽量保持局部结构,并尽量满足每个数据点与其他数据点的相似度约束。

总结来说,求解矩阵L和D的广义特征值问题,可以获得局部保持投影所需的投影矩阵的特征向量,以实现数据点的局部结构保持和相似度约束。







在局部保持投影中,我们使用拉普拉斯矩阵L而不是相似度矩阵W来求解广义特征值问题的原因如下:

特征值的意义:矩阵L的特征值代表了数据点在投影空间中的重要性或权重。较大的特征值对应的特征向量在投影空间中具有更大的权重,表示数据点的重要程度较高。相反,较小的特征值对应的特征向量在投影空间中具有较小的权重,表示数据点的重要程度较低。

保持局部结构:拉普拉斯矩阵L通过考虑数据点之间的差异度和相似度差异,能够更好地保持数据点在原始空间中的局部结构。相似度矩阵W仅考虑数据点之间的相似度,而不考虑它们的差异度。通过使用拉普拉斯矩阵L,我们可以更好地捕捉到数据点之间的差异,从而更好地保持局部结构。

特征向量的性质:矩阵L的特征向量通常对应于数据点在投影空间中的投影方向,而相似度矩阵W的特征向量通常不具备这种性质。通过使用矩阵L的特征向量,我们可以获得在局部保持投影中更有意义和有效的投影方向。

综上所述,求解矩阵L的广义特征值问题能够更好地满足局部保持投影的要求,而求解矩阵W的广义特征值问题则可能无法很好地保持局部结构或提供有意义的投影方向。因此,在局部保持投影中,我们通常选择求解矩阵L的广义特征值问题来获得合适的投影矩阵。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值