局部保留投影(Locality Preserving Projections, LPP)是一种用于数据降维
的技术,尤其适用于非线性数据集
。
LPP的基本思想是在降维过程中尽可能地保持数据点之间的局部结构不变
,即在高维空间中相邻的数据点,在降维后的低维空间中也应该保持相邻。
假设在高维空间中,数据 X 和 Y 存在相邻关系,在降维后的空间中 X‘ 和 Y’ 关系与原高维空间相同
目标函数
LPP的目标函数是寻找一个投影矩阵
,将高维数据
投影到低维空间
,使得在低维空间中,样本点之间的相对距离尽可能反映它们在高维空间中的
局部邻域关系
。这通常通过最小化以下目标函数实现:
公式解析
:
投影矩阵
,我们希望求解的对象。:
数据集中样本的数量。
:
投影后的样本点
,其中。
:
欧几里得距离的平方,表示两个投影点之间的距离。
:
相似度或权重矩阵
的元素,反映了样本和样本
之间的相似度或邻近程度。如果
和
是邻居,则
较大;如果不是,则接近于0。
权重矩阵 
权重矩阵的定义
依赖于样本点之间的距离
。常见的定义方式有两种:
- 使用固定半径
的邻域:如果两个点之间的距离小于
,则它们被认为是
邻居
,权重为,否则权重为0。
- 使用
-最近邻规则:对于每一个点
,找到距离它最近的
个点作为它的邻居,
然后计算相应的权重。
解决方法
求解 通常是通过
求解广义特征值
问题实现的。具体而言,我们需要构造两个矩阵 和
,其中
是
相似度矩阵
的
加权形式
,而 是一个单位矩阵减去
。最终的
是广义特征值问题
的特征向量构成的矩阵,其中
是
对角矩阵,包含对应的特征值。
LPP通过上述过程,能够在降维的同时,有效地保持数据的局部几何结构
,使其在模式识别、图像分析等领域有广泛的应用。
python代码