sklearn.manifold(流式学习)模块结构及用法

manifold learning流形学习是一种非线性降维的手段。

这项工作的算法基于以下想法:很多数据集的维度只是人为的高。

多维度数据集非常难于可视化。反而2维或者3维数据很容易通过图表展示数据本身的内部结构,等价的高维绘图就远没有那么直观了。为了实现数据集结构的可视化,数据的维度必须通过某种方式降维。

最简单的降维手段是数据的随机投影。虽然这种方式实现一定程度的数据结构可视化,但是选择的随意性导致结果远不如意。在随机投影中,更有趣的结构容易丢失。

为了解决这种问题,人们设计了一系列监督或非监督的线性降维框架,例如Principal Component Analysis(PCA,主成分分析)、Independent Component Analysis、 Linear Discriminant Analysis…这些算法定义了特殊的平估量用于维数据选择有趣的线性投影,这些手段是有效的,不过经常会错失数据结构中的非线性项。

Manifold Learing可以看作一种生成类似PCA的线性框架,不同的是可以对数据中的非线性结构敏感。虽然存在监督变体,但是典型的流式学习问题是非监督的:它从数据本身学习高维结构,不需要使用既定的分类。

例子:

  • 模块内的常用类及函数

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.
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.
  • Reference

  1. 2.2. Manifold learning

猜你喜欢

转载自blog.csdn.net/The_Time_Runner/article/details/89737002
今日推荐