Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

t-SNE

作者头像
裴来凡
发布于 2022-09-21 00:45:35
发布于 2022-09-21 00:45:35
32700
代码可运行
举报
运行总次数:0
代码可运行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from time import time
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import offsetbox
from sklearn import (manifold,datasets,decomposition,ensemble,discriminant_analysis,random_projection)
digits=datasets.load_digits(n_class=6)
X=digits.data
y=digits.target
n_samples,n_features=X.shape
n_neighbors=30
#缩放和可视化嵌入向量
def plot_embedding(X,title=None):
    x_min,x_max=np.min(X,0),np.max(X,0)
    X=(X-x_min)/(x_max-x_min)
    plt.figure()
    ax=plt.subplot(111)
    for i in range(X.shape[0]):
        plt.text(X[i,0], X[i,1],str(digits.target[i]),
                 color=plt.cm.Set1(y[i]/10.),
                 fontdict={'weight':'bold','size':9})
    if hasattr(offsetbox,'AnnotationBbox'):
        shown_images=np.array([[1.,1.]])
        for i in range(digits.data.shape[0]):
            dist=np.sum((X[i]-shown_images)**2,1)
            if np.min(dist)<4e-3:
                continue
            shown_images=np.r_[shown_images, [X[i]]]
            imagebox=offsetbox.AnnotationBbox(offsetbox.OffsetImage(digits.images[i],cmap=plt.cm.gray_r),X[i])
            ax.add_artist(imagebox)
    plt.xticks([]),plt.yticks([])
    if title is not None:
        plt.title(title)
#绘制数字图像
n_img_per_row=20
img = np.zeros((10*n_img_per_row,10*n_img_per_row))
for i in range(n_img_per_row):
    ix=10*i+1
    for j in range(n_img_per_row):
        iy=10*j+1
        img[ix:ix+8,iy:iy+8]=X[i*n_img_per_row+j].reshape((8,8))
plt.imshow(img,cmap=plt.cm.binary)
plt.xticks([])
plt.yticks([])
plt.title('选择64维数字数据集')
#t-SNE嵌入数字数据集
print("计算t-SNE嵌入")
tsne=manifold.TSNE(n_components=2,init='pca',random_state=0)
t0=time()
X_tsne=tsne.fit_transform(X)
plot_embedding(X_tsne,"t-SNE嵌入数字数据集 (时间 %.2fs)"%(time()-t0))
plt.show()

算法:t-SNE是在邻域图上使用随机游走来揭示隐式结构的降维方法。

链接:https://github.com/wepe/MachineLearning/tree/master/ManifoldLearning/DimensionalityReduction_DataVisualizing

https://github.com/oreillymedia/t-SNE-tutorial

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LLE
链接:https://github.com/wepe/MachineLearning/tree/master/ManifoldLearning/DimensionalityReduction_DataVisualizing
裴来凡
2022/05/29
3990
LLE
十种方法实现图像数据集降维
降维是通过单幅图像数据的高维化,对单幅图像转化为高维空间中的数据集合进行的一种操作。机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。 y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的)。f可能是显式的或隐式的、线性的或非线性的。
不脱发的程序猿
2021/05/08
2.2K0
十种方法实现图像数据集降维
还在用PCA降维?快学学大牛最爱的t-SNE算法吧(附Python/R代码)
假设你有一个包含数百个特征(变量)的数据集,却对数据所属的领域几乎没有什么了解。 你需要去识别数据中的隐藏模式,探索和分析数据集。不仅如此,你还必须找出数据中是否存在模式--用以判定数据是有用信号还是噪音?
生信宝典
2019/10/14
3.9K0
MDS
链接:https://github.com/wepe/MachineLearning/tree/master/ManifoldLearning/DimensionalityReduction_DataVisualizing
裴来凡
2022/05/29
4731
MDS
使用t-SNE做降维可视化
简而言之,降维是在2维或3维中展现更高维数据(具有多个特征的数据,且彼此具有相关性)的技术。
AI粉嫩特工队
2019/11/15
2.3K0
使用t-SNE做降维可视化
使用t-SNE做降维可视化
简而言之,降维是在2维或3维中展现更高维数据(具有多个特征的数据,且彼此具有相关性)的技术。
AI粉嫩特工队
2019/11/15
7810
机器学习数据降维与可视化:t-SNE详解与实践【附代码】
高维数据不仅在存储和计算上带来困难,更重要的是,我们很难直观地理解高维空间中数据点的分布和结构。
Ai学习的老章
2024/11/19
2.9K0
机器学习数据降维与可视化:t-SNE详解与实践【附代码】
t-SNE:可视化效果最好的降维算法
1D,2D和3D数据可以可视化。但是在数据科学领域并不总是能够处理一个小于或等于3维的数据集,我们肯定会遇到使用高维数据的情况。对于数据科学专业人员来说,有必要对工作数据进行可视化和深入了解,以便更好地完成工作,我们可以使用降维技术
deephub
2020/12/11
1.1K0
t-SNE:可视化效果最好的降维算法
数据处理方法—— 7 种数据降维操作 !!
数据降维是一种将高维数据转换为低纬数据的技术,同时尽量保留原始数据的重要信息。这对于处理大规模数据集非常有用,因为它有助于减少计算资源的需要,并提高算法的效率。以下是一些常用的数据降维方法,以及它们的原理和应用。
JOYCE_Leo16
2024/03/19
3K1
数据处理方法—— 7 种数据降维操作 !!
通俗理解一个常用的降维算法
最易被我们视觉观察到的维数是一维,二维和三维,四维及以上用图形表达都不会那么直观。
double
2019/11/22
1.1K0
通俗理解一个常用的降维算法
什么是高维数据可视化的降维方法_数据降维具体算法有哪几种
  t-SNE是目前来说效果最好的数据降维与可视化方法,但是它的缺点也很明显,比如:占内存大,运行时间长。但是,当我们想要对高维数据进行分类,又不清楚这个数据集有没有很好的可分性(即同类之间间隔小,异类之间间隔大),可以通过t-SNE投影到2维或者3维的空间中观察一下。如果在低维空间中具有可分性,则数据是可分的;如果在高维空间中不具有可分性,可能是数据不可分,也可能仅仅是因为不能投影到低维空间。   下面会简单介绍t-SNE的原理,参数和实例。
全栈程序员站长
2022/09/28
1.8K0
什么是高维数据可视化的降维方法_数据降维具体算法有哪几种
t-SNE完整笔记 (附Python代码)
t-SNE(t-distributed stochastic neighbor embedding)是用于降维的一种机器学习算法,是由 Laurens van der Maaten 和 Geoffrey Hinton在08年提出来。此外,t-SNE 是一种非线性降维算法,非常适用于高维数据降维到2维或者3维,进行可视化。
Twcat_tree
2023/12/12
1.1K0
t-SNE完整笔记 (附Python代码)
算法金 | 一个强大的算法模型:t-SNE !!
t-SNE(t-Distributed Stochastic Neighbor Embedding)是一种用于降维和数据可视化的非线性算法。它被广泛应用于图像处理、文本挖掘和生物信息学等领域,特别擅长处理高维数据。
算法金
2024/06/18
3580
算法金 | 一个强大的算法模型:t-SNE !!
孪生网络入门(下) Siamese Net分类服装MNIST数据集(pytorch)
在上一篇文章中已经讲解了Siamese Net的原理,和这种网络架构的关键——损失函数contrastive loss。现在我们来用pytorch来做一个简单的案例。经过这个案例,我个人的收获有到了以下的几点:
机器学习炼丹术
2020/12/16
3.4K3
使用t-SNE算法进行可视化
t-Distributed Stochastic Neighbor Emdedding
生信修炼手册
2021/04/15
1K0
降维方法 PCA、t-sne、Umap 的 python 实现
提取游戏音频 5.7W 段,提取声音指纹特征,放在 fea.json 文件中用于测试。
为为为什么
2023/06/27
1.3K0
降维方法 PCA、t-sne、Umap 的 python 实现
【机器学习】无监督学习:PCA和聚类
在这节课中,我们将讨论主成分分析(PCA)和聚类(clustering)这样的无监督学习方法。你将学习为何以及如何降低原始数据的维度,还有分组类似数据点的主要方法。
zenRRan
2019/11/19
2.4K0
12种降维方法终极指南(含Python代码)
你遇到过特征超过1000个的数据集吗?超过5万个的呢?我遇到过。降维是一个非常具有挑战性的任务,尤其是当你不知道该从哪里开始的时候。拥有这么多变量既是一个恩惠——数据量越大,分析结果越可信;也是一种诅咒——你真的会感到一片茫然,无从下手。
zenRRan
2019/11/20
1.5K0
12种降维方法终极指南(含Python代码)
python主题建模可视化LDA和T-SNE交互式可视化|附代码数据
我尝试使用Latent Dirichlet分配LDA来提取一些主题。 本教程以自然语言处理流程为特色,从原始数据开始,准备,建模,可视化论文。
拓端
2023/07/25
5800
python主题LDA建模和t-SNE可视化
我们将首先介绍主题建模和t-SNE,然后将这些技术应用于两个数据集:20个新闻组和推文。
拓端
2020/08/02
1.5K0
相关推荐
LLE
更多 >
LV.1
中国地质大学(武汉)博士
加入讨论
的问答专区 >
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档