manifold learning流形学习是一种非线性降维的手段。
这项工作的算法基于以下想法:很多数据集的维度只是人为的高。
多维度数据集非常难于可视化。反而2维或者3维数据很容易通过图表展示数据本身的内部结构,等价的高维绘图就远没有那么直观了。为了实现数据集结构的可视化,数据的维度必须通过某种方式降维。
最简单的降维手段是数据的随机投影。虽然这种方式实现一定程度的数据结构可视化,但是选择的随意性导致结果远不如意。在随机投影中,更有趣的结构容易丢失。
为了解决这种问题,人们设计了一系列监督或非监督的线性降维框架,例如Principal Component Analysis(PCA,主成分分析)、Independent Component Analysis(独立成分分析)、 Linear Discriminant Analysis(线性判别分析)…这些算法定义了特殊的评估量用于多维数据选择有趣的线性投影,这些手段是有效的,不过经常会错失数据结构中的非线性项。
Manifold Learing可以看作一种生成类似PCA的线性框架,不同的是可以对数据中的非线性结构敏感。虽然存在监督变体,但是典型的流式学习问题是非监督的:它从数据本身学习高维结构,不需要使用既定的分类。
例子:
- 请参阅手写数字上的流形学习:局部线性嵌入,Isomap …以获取手写数字降维的示例。
- 有关玩具“S曲线”数据集上降维的示例,请参阅流形学习方法的比较。
类:
| class | 解释 | 解释 |
|---|---|---|
manifold.Isomap([n_neighbors, n_components, …]) |
Isomap Embedding | 等距映射 |
manifold.LocallyLinearEmbedding([…]) |
Locally Linear Embedding | 局部线性嵌入 |
manifold.MDS([n_components, metric, n_init, …]) |
Multidimensional scaling | 多维尺度变换 |
manifold.SpectralEmbedding([n_components, …]) |
Spectral embedding for non-linear dimensionality reduction. | 拉普拉斯特征映射 |
manifold.TSNE([n_components, perplexity, …]) |
t-distributed Stochastic Neighbor Embedding. | T-SNE |
函数:
| function | 解释 |
|---|---|
manifold.locally_linear_embedding(X, …[, …]) |
Perform a Locally Linear Embedding analysis on the data. |
manifold.smacof(dissimilarities[, metric, …]) |
Computes multidimensional scaling using the SMACOF algorithm. |
manifold.spectral_embedding(adjacency[, …]) |
Project the sample on the first eigenvectors of the graph Laplacian. |
-
sklearn.manifold.LocallyLinearEmbedding(局部线性嵌入) 官方文档
class sklearn.manifold.LocallyLinearEmbedding(n_neighbors=5

最低0.47元/天 解锁文章
1158

被折叠的 条评论
为什么被折叠?



