【高维数据降维】局部线性嵌入LLE

高维数据降维之局部线性嵌入 LLE

高维数据降维是指采用某种映射方法,降低随机变量的数量,例如将数据点从高维空间映射到低维空间中,从而实现维度减少。

降维分为:特征选择 和 特征提取
特征选择:是从含有冗余信息以及噪声信息的数据中找出主要变量;
特征提取:是去掉原来的数据,生成新的变量,可以寻找数据内部的本质结构特征。

降维的过程是通过对输入的原始数据特征进行学习,得到一个映射函数,实现将输入样本映射后到低维空间中之后,原始数据特征并没有明显的损失,通常情况下新空间的维度要小于原空间的维度。目前大部分降维算法是处理向量形式的数据。

局部线性嵌入 LLE

流形学习是机器学习中的一种维数约简方法,将高维数据映射到低维,并依然能够反映原高维数据的本质结构特征。

流形学习的前提是假设某些高维数据实际是 一种低维的流形结构嵌入到高维空间中。

流形学习分为线性流形算法和非线性流形算法,线性流形算法包括 主成分分析 PCA 和线性判别分析 LDA ,非线性流形算法包括局部线性嵌入 LLE 、拉普拉斯特征映射 LE 等等。

局部线性嵌入是一种典型的非线性降维算法,这一算法要求每一个数据点都可以由其近邻点的线性加权组合构造得到,从而使得降维后的数据也能基本保持原有流形结构。它是流形学习方法最经典的工作之一,后续的很多流形学习、降维方法都与其有密切联系。

局部线性嵌入寻求数据的低维投影,保留本地领域内的距离。它可以被认为是一系列局部主成分分析,被全局比较以找到最佳的非线性嵌入。

局部线性嵌入基本步骤:

(1) 首先寻找每个样本点的 k 个近邻点;

(2) 由每个样本点的近邻点计算出该样本点的局部重建权值矩阵;

(3) 由该样本点的局部重建权值矩阵和近邻点计算出该样本点的输出值。

LLE 在有些情况下也并不适用,例如数据分布在整个封闭的球面上,LLE 则不能将它映射到二维空间,且不能保持原有的数据流形。因此在处理数据的时候,需要确保数据不是分布在闭合的球面或者椭圆面上。

例子:

# 例子:
from sklearn import manifold, datasets
import numpy as np
import matplotlib.pyplot as plt

X,color = datasets.make_swiss_roll(n_samples = 1500)
# 10个近邻点,降到2维
X_r,err = manifold.locally_linear_embedding(X,n_neighbors=10,n_components=2)

ax = plt.subplot(projection = '3d')
# 原始数据 
ax.scatter(X[:,0],X[:,1],X[:,2],c = color, cmap=plt.cm.Spectral)  

在这里插入图片描述

# 投射数据
plt.scatter(X_r[:,0],X_r[:,1],c = color, cmap=plt.cm.Spectral)   

在这里插入图片描述
经过 LLE 变换后,样本数据在低维空间上已经明显区分出来。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值