首页 > 其他分享 >T_SNE可视化中间层

T_SNE可视化中间层

时间:2023-05-14 15:23:25浏览次数:32  
标签:类别 SNE idx list marker fruit 可视化 中间层 indices

解析一下一些画图的代码:

plt.figure(figsize=(14, 14))
for idx, fruit in enumerate(class_list): # 遍历每个类别
    # 获取颜色和点型
    color = palette[idx]
    marker = marker_list[idx%len(marker_list)]

    # 找到所有标注类别为当前类别的图像索引号
    indices = np.where(df[show_feature]==fruit)
    plt.scatter(X_tsne_2d[indices, 0], X_tsne_2d[indices, 1], color=color, marker=marker, label=fruit, s=150)

plt.legend(fontsize=16, markerscale=1, bbox_to_anchor=(1, 1))
plt.xticks([])
plt.yticks([])
plt.savefig('语义特征t-SNE二维降维可视化.pdf', dpi=300) # 保存图像
plt.show()
这段代码是用来绘制一个散点图的。它使用了 `matplotlib` 库中的 `pyplot` 模块,简称 `plt`。

- `plt.figure(figsize=(14, 14))`:创建一个大小为 14 x 14 的画布。
- `for idx, fruit in enumerate(class_list):`:遍历 `class_list` 中的每个类别。
- `color = palette[idx]`:获取当前类别对应的颜色。
- `marker = marker_list[idx%len(marker_list)]`:获取当前类别对应的点型。
- `indices = np.where(df[show_feature]==fruit)`:找到所有标注类别为当前类别的图像索引号。
- `plt.scatter(X_tsne_2d[indices, 0], X_tsne_2d[indices, 1], color=color, marker=marker, label=fruit, s=150)`:
在画布上绘制散点图,其中横坐标为 `X_tsne_2d[indices, 0]`,纵坐标为 `X_tsne_2d[indices, 1]`,颜色为 `color`,点型为 `marker`,标签为 `fruit`,点的大小为 150。 - `plt.legend(fontsize=16, markerscale=1, bbox_to_anchor=(1, 1))`:添加图例,字体大小为 16,图例中点的大小与原图相同,图例位置在画布右上角。 - `plt.xticks([])` 和 `plt.yticks([])`:去掉 x 轴和 y 轴的刻度。 - `plt.savefig('语义特征t-SNE二维降维可视化.pdf', dpi=300)`:保存图像为 PDF 格式,分辨率为 300 dpi。 - `plt.show()`:显示图像。
for idx, fruit in enumerate(class_list):
`enumerate()` 是一个内置函数,它可以将一个可迭代对象(如列表)转换为一个枚举对象。这个枚举对象中的每个元素都是一个元组,包含两个元素:索引号和原可迭代对象中对应的元素。

在这一行代码中,`for idx, fruit in enumerate(class_list):` 遍历 `class_list` 中的每个元素。`idx` 是当前元素在 `class_list` 中的索引号,`fruit` 是当前元素的值。

例如,如果 `class_list = ['apple', 'banana', 'cherry']`,那么第一次循环时,`idx = 0`,`fruit = 'apple'`;第二次循环时,`idx = 1`,`fruit = 'banana'`;第三次循环时,`idx = 2`,`fruit = 'cherry'`。
这一行代码中,`marker = marker_list[idx%len(marker_list)]` 是用来获取当前类别对应的点型的。

`idx` 是当前类别在 `class_list` 中的索引号,`len(marker_list)` 是 `marker_list` 的长度。`idx % len(marker_list)` 是 `idx` 除以 `len(marker_list)` 的余数,它取值范围为 `0` 到 `len(marker_list)-1`。

因此,`marker_list[idx%len(marker_list)]` 就是 `marker_list` 中索引号为 `idx % len(marker_list)` 的元素,也就是当前类别对应的点型。

例如,如果 `marker_list = ['o', 's', '^']`,那么当 `idx = 0` 时,`idx % len(marker_list) = 0`,所以 `marker = marker_list[0] = 'o'`;
当 `idx = 1` 时,`idx % len(marker_list) = 1`,所以 `marker = marker_list[1] = 's'`;当 `idx = 2` 时,`idx % len(marker_list) = 2`,所以 `marker = marker_list[2] = '^'`;
当 `idx = 3` 时,由于 `3 % 3 = 0`,所以又回到了第一个点型 `'o'`。 希望这些信息能够帮助你理解这一行代码。

标签:类别,SNE,idx,list,marker,fruit,可视化,中间层,indices
From: https://www.cnblogs.com/lingxingzi/p/17399359.html

相关文章

  • 利用MATLAB GUI设计平台,设计多算法雷达一维恒虚警检测CFAR可视化界面,通过选择噪声类型
    利用MATLABGUI设计平台,设计多算法雷达一维恒虚警检测CFAR可视化界面,通过选择噪声类型、目标类型、算法类型,手动输入相关参数,可视化显示噪声波形与目标检测的回波-检测门限波形图ID:94200670614830016......
  • Bilibili-XMLSubtitle-to-ASS可视化Bilibili本地视频XML弹幕转换ASS字幕转换器:新增自
    可视化Bilibili本地视频XML弹幕转换ASS字幕转换器一个可视化,打开即用的将B站弹幕转换为本地播放器可识别的ASS格式字幕的工具。另外这个工具还有一个妙用,如果你想看一部曾经在B站上存在过但现在下架了的电视剧/电影的弹幕,用这个工具也能多多少少帮你做到这一点,具体方式请往下看......
  • RedisInsight支持redis集群可视化
    RedisInsight是Redis官方出品的可视化管理工具,可用于设计、开发、优化你的Redis应用。支持深色和浅色两种主题,界面非常炫酷!可支持String、Hash、Set、List、JSON等多种数据类型的管理,同时支持远程使用CLI功能,功能非常强大!......
  • Python用T-SNE非线性降维技术拟合和可视化高维数据iris鸢尾花、MNIST 数据|附代码数据
    原文链接:http://tecdat.cn/?p=24002最近我们被客户要求撰写关于非线性降维技术的研究报告,包括一些图形和统计输出。T-distributedStochasticNeighborEmbedding(T-SNE)是一种可视化高维数据的工具。T-SNE基于随机邻域嵌入,是一种非线性降维技术,用于在二维或三维空间中可视化......
  • java可视化开发工具好用不好用?
    java可视化开发工具到底好用不好用?这是不少粉丝朋友经常询问到的一个问题。在数字化发展趋势越发明显的当下,java可视化开发工具可以帮助各中大型企业实现转型升级,它的灵活、简洁、易操作、可视化等功能优势,让很多客户朋友欣慰不已,仿佛寻觅到了市场的发展动向。今天,我们就一起来了......
  • R语言分位数回归、最小二乘回归OLS北京市GDP影响因素可视化分析
    全文链接:http://tecdat.cn/?p=32372原文出处:拓端数据部落公众号对于影响北京市GDP因素分析常用的方法是最小二乘回归。【1】但最小二乘有自身的缺陷,该方法要求较高,例如许多观测数据很难满足全部假设条件。相比普通最小二乘法只能描述协变量对因变量条件均值变化的影响,分位数回......
  • 智慧畜牧三维可视化,图扑数字孪生赋能现代农业
    前言"畜牧业是我国重要的农业产业之一,对于国民经济的发展和人民群众的生活具有重要的意义。智慧畜牧作为现代畜牧业的发展方向之一,将信息技术和现代管理相结合,提高养殖效率和品质,为行业的可持续发展注入新的动力。智慧畜牧是将信息技术和现代管理方法应用于畜牧业生产过程中,通过......
  • R语言DCC-GARCH模型对上证指数、印花税收入时间序列数据联动性预测可视化|附代码数据
    全文链接:http://tecdat.cn/?p=31630最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出。普通的模型对于两个序列的波动分析一般是静态的,但是dcc-garch模型可以实现他们之间动态相关的波动分析,即序列间波动并非为一个常数,而是一个随着时间的变化而变化的系数。其......
  • R语言K-Means(K-均值)聚类、朴素贝叶斯(Naive Bayes)模型分类可视化
    全文链接:http://tecdat.cn/?p=32355原文出处:拓端数据部落公众号分类是把某个对象划分到某个具体的已经定义的类别当中,而聚类是把一些对象按照具体特征组织到若干个类别里。虽然都是把某个对象划分到某个类别中,但是分类的类别是已经预定义的,而聚类操作时,某个对象所属的类别却不是......
  • 学习了 python的数据爬取以及数据的可视化。
     Python中国大学排名数据分析与可视化;【源代码程序】importrequestsfrombs4importBeautifulSoupasbsimportpandasaspdfrommatplotlibimportpyplotaspltdefget_rank(url):   count=0   rank=[]   headers={       "user-agen......