美文网首页NGS避坑指南
比PCA高级的t-SNE也存在缺点

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

作者: caokai001 | 来源:发表于2019-10-26 13:40 被阅读0次

    原文地址


    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显得难以驾驭。在工程中,使用得并不广泛。

    相关文章

      网友评论

        本文标题:比PCA高级的t-SNE也存在缺点

        本文链接:https://www.haomeiwen.com/subject/viwyvctx.html