tsne官方论文代码解读和使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tsne官方论文代码解读和使用相关的知识,希望对你有一定的参考价值。

MLGB,人生就是矫情,充满冲动,充满热恋。

tsne的08年的论文看了几遍,发现原理还是蛮简单的,能想到还是不容易(人生的战场是星辰大海,但我们的贡献就是也就是宇宙尘埃)

怎么说呢,现在真的是一个好时机,发不出论文只能说是zz了。08才有人第一次有效的结合pairwise distance和statistic方法。

而tsne几乎是一个很难超越的经典,简单的方程就像是图像处理的双边滤波一样。现在为止好像都没有更好的方法。

官方下了代码之后加上这句话,使用的是最简单的归一化的方法,虽然官方的代码中没有对数据进行归一化的函数,所以加上效果应该会更好(我也没注意minst需不需要或者已经归一化)

def eque(x):
    a,b=x.shape
    print x[:,2].max()
    for X in range(a):
        for  Y in range(b):
            x[X][Y]=(x[X][Y]-x[:,Y].min())/(x[:,Y].max()-x[:,Y].min())
    return x

官方代码思想是一遍聚类一遍降维,tsne发明者是傻逼,明明能写两篇论文,好像却写成了一篇可视化论文,其实也是一种比较好的自动聚类方法。

高维数据每个数据点被认为是一种正太分布数据(正太有三好),低维数据同样,然后让高维数据和低维数据相似度最大。又因为t分布好算而且和正太分布逼近,所以用了t分布来算就成了tsne方法。

其实tsne用于machine learning你可以有两种解释(一种解释就是一篇论文,而其中一种解释今年一个团队写成论文发表了)

1:就是对数据可视化找到最好的maping方法,然后就是最好的数据的可视结果 08年的论文

2:找到在最好maping下的聚类结果,那就是结合聚类和降维的一种优秀的聚类方法

所以你需要进行两个工作:

1:聚类(python最简单的方法有sklearn模块)

2:求kl distance(python有求解函数,实在不行就迭代呗)

3:找出小的kl distance,然后就是结果了

自己写也很简单。

由于python之中已经能安装tsne的model(如果没有FQ使用这种方式安装tsne)

pip install tsne -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

 

以上是关于tsne官方论文代码解读和使用的主要内容,如果未能解决你的问题,请参考以下文章

论文解读系列NER方向:SoftLexicon(ACL 2020)

论文解读系列NER方向:SoftLexicon(ACL 2020)

跨域图像的衡量新方式Style relevance:论文解读和代码实战

3. 5种常见卷积论文解读使用方法实现代码整理(conv)

张正友标定论文的解读和C++代码编写

3. 5种常见卷积论文解读使用方法实现代码整理(conv)