特征可视化技术t-SNE

特征可视化技术t-SNE

一、理论介绍

想要了解t-SNE的数学原理可以参考t-SNE完整笔记

关于t-SNE的使用过程中有以下几点需要注意:

  • t-SNE算法并不是每次都能产生相似结果。

  • t-SNE算法使得距离的概念适应于数据集中的区域密度变化。因此,它自然而然地扩大密集的集群,收缩稀疏的集群,使集群大小趋于平衡。

  • 还有一些可以阅读How to Use t-SNE Effectively

二、使用介绍

python sklearn就可以直接使用T-SNE,调用sklearn.mainfold.TSNE即可。

>>> import numpy as np
>>> from sklearn.manifold import TSNE
>>> X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
>>> X_embedded = TSNE(n_components=2, learning_rate='auto',
...                   init='random', perplexity=3).fit_transform(X)
>>> X_embedded.shape
(4, 2)

这里面TSNE自身参数网页中都有介绍。这里fit_trainsform(x)输入的x是numpy变量。pytroch中如果想要令特征可视化,需要转为numpy;此外,x的维度是二维的,第一个维度为例子数量,第二个维度为特征数量。比如上述代码中x就是4个例子,每个例子的特征维度为3。Pytroch中图像的特征往往大小是BXCXWXH的,可以flatten一下变成[B, CXWXH]。

参考文献

  1. 如何调参2:利用tSNE降维实现模型隐藏层的可视化
  2. How to Use t-SNE Effectively
  3. t-SNE完整笔记

猜你喜欢

转载自blog.csdn.net/qq_43428929/article/details/129267241