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)