咱们来聊一聊t-SNE这个降维可视化的事儿。有时候高维数据太多了,像那种十几万维的基因表达数据,要是直接画成二维图,肉眼根本看不清什么结构,全是噪声。t-SNE就像个魔术师,能把这些数据压缩到2D或3D空间里,帮科研人员一眼就看出生物信号。你看这张图,没处理的时候乱七八糟的,处理后同一类的样本就像被磁铁吸在一起一样紧紧抱团,不同类的就被推开了,效果特明显。 那t-SNE到底是怎么做到的呢?其实就三步: 第一步先给每个高维样本随机扔到低维空间里当个“临时坐标”。 第二步开始“贪心”地移动这些点:同类样本互相吸引,把红色圆圈拉紧;不同类的就互相排斥,把绿色圆圈推开。经过成千上万次迭代,低维空间里就慢慢现出高维的聚类轮廓了。 第三步就是等着收敛就行了。整个过程会持续到相似性矩阵基本不再变。 那它怎么知道该怎么移动点呢?靠的是相似性得分矩阵。这个矩阵会把任意两个样本的亲疏关系算出来,红色代表亲密,白色代表疏远。 为什么用t分布呢?因为正态分布尾巴太长了,容易把远距离的点当成“亲兄弟”;而t分布尾部更薄、峰值更高,能突出近邻点,远邻点就衰减得很快,这样就不会把远近混为一谈了。 你盯着相似性热图看就能直观判断算法是否收敛:热图不再抖动,颜色块边界锐利清晰的时候就是出图的最佳时机。 总之啊,t-SNE就是用一套自洽的逻辑把高维的混沌变成了二维的秩序。掌握了这套流程,你就能自己动手做出那种杂志级别的可视化效果了。