流形学习(Manifold Learning)是一种非线性降维方法

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 流形学习(Manifold Learning)是一种非线性降维方法

流形学习(Manifold Learning)是一种非线性降维方法,它假设数据位于一个低维流形上,并尝试找到这个低维表示。在sklearn.manifold模块中,有几种流行的流形学习方法,包括t-SNE(t-Distributed Stochastic Neighbor Embedding)和Isomap(Isometric Mapping)。

1. t-SNE(t-Distributed Stochastic Neighbor Embedding)

t-SNE是一种用于可视化和高维数据降维的技术。它通过在高维空间中保留数据点的局部邻域结构,并在低维空间(通常是二维或三维)中展示这种结构,来工作。

Python代码示例

from sklearn.manifold import TSNE
from sklearn.datasets import load_digits
import matplotlib.pyplot as plt

# 加载数据
digits = load_digits()
X = digits.data
y = digits.target

# 使用t-SNE进行降维
tsne = TSNE(n_components=2, random_state=0)
X_2d = tsne.fit_transform(X)

# 可视化结果
plt.figure(figsize=(6, 5))
colors = 'r', 'g', 'b', 'c', 'm', 'y', 'k', 'w', 'orange', 'purple'
for i, c, label in zip(range(10), colors, digits.target_names):
    plt.scatter(X_2d[y == i, 0], X_2d[y == i, 1], c=c, label=label)
plt.legend()
plt.show()

2. Isomap(Isometric Mapping)

Isomap是一种基于图理论的流形学习方法,它试图保持数据点之间的测地线距离(即沿着流形表面的最短路径)。

Python代码示例

from sklearn.manifold import Isomap
from sklearn.datasets import load_digits
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 加载数据
digits = load_digits()
X = digits.data
y = digits.target

# 使用Isomap进行降维到三维
isomap = Isomap(n_neighbors=5, n_components=3)
X_3d = isomap.fit_transform(X)

# 可视化结果(这里使用三维散点图)
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')
colors = 'r', 'g', 'b', 'c', 'm', 'y', 'k', 'w', 'orange', 'purple'
for i, c, label in zip(range(10), colors, digits.target_names):
    ax.scatter(X_3d[y == i, 0], X_3d[y == i, 1], X_3d[y == i, 2], c=c, label=label)
ax.legend()
plt.show()

请注意,对于Isomap,我选择了三维降维以便于可视化。但在实际应用中,你可能希望将其降至二维或更低维度。
处理结果:

1. t-SNE(t-Distributed Stochastic Neighbor Embedding)

t-SNE是一种用于可视化和高维数据降维的技术。它通过在高维空间中保留数据点的局部邻域结构,并在低维空间(通常是二维或三维)中展示这种结构,来工作。
Python代码示例
```python

加载数据

使用t-SNE进行降维

可视化结果

plt.scatter(X_2d[y == i, 0], X_2d[y == i, 1], c=c, label=label)
Isomap是一种基于图理论的流形学习方法,它试图保持数据点之间的测地线距离(即沿着流形表面的最短路径)。

相关文章
|
6月前
|
机器学习/深度学习 存储 算法
神经网络分类算法原理详解
神经网络分类算法原理详解
260 0
|
6月前
|
机器学习/深度学习 自然语言处理 算法
神经网络分类算法的应用及其实现
神经网络分类算法的应用及其实现
102 0
|
6月前
|
机器学习/深度学习 算法 数据可视化
Machine Learning机器学习之高维数据降维(主成分分析PCA、线性判别分析、自编码器超级无敌详细讲解)
Machine Learning机器学习之高维数据降维(主成分分析PCA、线性判别分析、自编码器超级无敌详细讲解)
|
机器学习/深度学习 人工智能 算法
解密人工智能:KNN | K-均值 | 降维算法 | 梯度Boosting算法 | AdaBoosting算法
解密人工智能:KNN | K-均值 | 降维算法 | 梯度Boosting算法 | AdaBoosting算法
176 0
|
机器学习/深度学习 数据采集 算法
学习笔记: 机器学习经典算法-主成分分析PCA与梯度上升法
机器学习经典算法-个人笔记和学习心得分享
144 0
|
机器学习/深度学习 人工智能 PyTorch
【Pytorch神经网络理论篇】 08 Softmax函数(处理分类问题)
oftmax函数本质也为激活函数,主要用于多分类问题,且要求分类互斥,分类器最后的输出单元需要Softmax 函数进行数值处理。
315 0
|
机器学习/深度学习 人工智能 算法
【Pytorch神经网络理论篇】 24 神经网络中散度的应用:F散度+f-GAN的实现+互信息神经估计+GAN模型训练技巧
MINE方法中主要使用了两种技术:互信息转为神经网络模型技术和使用对偶KL散度计算损失技术。最有价值的是这两种技术的思想,利用互信息转为神经网络模型技术,可应用到更多的提示结构中,同时损失函数也可以根据具体的任务而使用不同的分布度量算法。
491 0
|
机器学习/深度学习 存储 人工智能
【Pytorch神经网络基础理论篇】 08 Softmax 回归 + 损失函数 + 图片分类数据集
【Pytorch神经网络基础理论篇】 08 Softmax 回归 + 损失函数 + 图片分类数据集
256 0
|
机器学习/深度学习 传感器 资源调度
【FNN回归预测】基于Jaya优化前馈神经网络FNN实现数据回归预测附Matlab代码
【FNN回归预测】基于Jaya优化前馈神经网络FNN实现数据回归预测附Matlab代码
|
机器学习/深度学习 存储 移动开发
机器学习算法之——K最近邻(k-Nearest Neighbor,KNN)分类算法原理讲解
从这些实例中泛化的工作被推迟到必须分类新的实例时。每当学习器遇到一个新的查询实例,它分析这个新实例与以前存储的实例的关系,并据此把一个目标函数值赋给新实例。
机器学习算法之——K最近邻(k-Nearest Neighbor,KNN)分类算法原理讲解