比PCA高级的t-SNE也存在缺点

原文地址


1.简单介绍

t-SNE(t-distributed stochastic neighbor embedding)是用于降维的一种机器学习算法,是由 Laurens van der Maaten 和 Geoffrey Hinton在08年提出来。此外,t-SNE 是一种非线性降维算法,非常适用于高维数据降维到2维或者3维,进行可视化。


image.png

2.简单举例

## https://blog.csdn.net/hustqb/article/details/80628721
import numpy as np
from sklearn.manifold import TSNE
from mpl_toolkits.mplot3d.axes3d import Axes3D

X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
X_embedded = TSNE(n_components=2,init='pca', random_state=501).fit_transform(X)
X_embedded
# plt.scatter(X_embedded[:, 0], X_embedded[:, 1])

## 三维
fig = plt.figure()
axes3d = Axes3D(fig)
axes3d.scatter(X[:,0],X[:,1],X[:,2])
image.png

3.缺点如下:

  • tsne太慢,不适合于大规模计算或者大数据

  • tsne不能对test data做transform。比如说我们对training data进行pca,然后可以利用刚刚得到的pca分解矩阵直接对test data进行变换。但是tsne不行。

  • tsne的结果具有一定的随机性,而不是像pca,结果一致性很好。


除此之外,tsne的稳健性和一致性不是太好。

1. tsne对超参的设置比较严苛,设置不当,会导致结果很差。

最左是原始的数据,剩下五个是tsne处理后的数据,明显看出在一些参数下,结果并不理想

image.png

2. tsne后聚类的大小没有实际意义

最左是原始的数据,蓝色较大,黄色较小。剩下五个是tsne处理后的数据,每簇的大小看起来很随机。

image.png

3. tsne后聚类间的距离没有意义

最左是原始的数据,黄色蓝色较近、绿色分隔得比较远。剩下五个是tsne处理后的数据,原图中的距离并没有被保留。

image.png

4. 随机噪音在tsne处理之后看起来不像随机噪音

最左是原始的数据,正态分布的随机点。剩下五个是tsne处理后的数据,似乎还能看出各种不同的规律,并不像是完全的杂乱无章。

image.png

5. tsne后聚类出现不规律的形状

最左是原始的数据,杂乱无章,没有明显的分布。剩下五个是tsne处理后的数据,出现了各种形状,有的似乎还出现了聚类。

image.png

上面种种问题让tsne显得难以驾驭。在工程中,使用得并不广泛。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 很多机器学习的问题都会涉及到有着几千甚至数百万维的特征的训练实例。这不仅让训练过程变得非常缓慢,同时还很难找到一个...
    城市中迷途小书童阅读 4,036评论 0 2
  • 在现实生活中很多机器学习问题有上千维,甚至上万维特征,这不仅影响了训练速度,通常还很难找到比较好的解。这样的问题成...
    wong11阅读 62,070评论 0 36
  • 写在前面 态度决定高度!让优秀成为一种习惯! 世界上没有什么事儿是加一次班解决不了的,如果有,就加两次!(- - ...
    夜尽天明时阅读 5,427评论 0 9
  • #感谢有你# 有人说, 你的三天可见, 只是屏蔽了那些关心你的人, 不关心你的人, 对你的朋友圈不感兴趣, 然而,...
    一幽帘阅读 512评论 0 2
  • 十九大召开以来,勿忘初心,方得始终,这句话广为流传。今天从另外一个角度解读一下。 关键对话中,有一个重要原则就是:...
    安宁姑娘阅读 787评论 10 6

友情链接更多精彩内容