学习:StatQuest-t-SNE

前言

t-SNE有别于PCA,PCA是一种线性降维,而t-SNE基于的是“概率”进行降维,在高维空间,当两个样品点相近是,其条件概率也会最大,而t-SNE也就是抓住了这个特点,将距离的相近转化为条件概率的最大化进行降维。

t-SNE

我们举一个简单的例子,即在二维坐标内,如何将二维数据通过t-SNE降维成一维


image.png

显然,在二维坐标里面,我们的数据点是聚类好的,如果简单的把它们投影到一维,那么肯定会破坏聚类,就像下图那样


image.png

所以这就是t-SNE的绝妙之处:

1. 随机排列

将二维数据随机排列到一维数轴上


image.png

2.移动对应点

根据二维数据聚类情况,对相应数据点进行移动
如下图,红色点向右移动


image.png

就依靠这个,将无序的数据点再重新聚类

t-SNE步骤

1.确定数据点的相似性

image.png

我们计算任意两个点的距离,然后以感兴趣的点为中心(均值)绘制正态分布曲线,那么另一个点对应的纵坐标值称为“未标准化的相似性”


image.png

将你感兴趣的点与其他数据点都在这同一分布下以相同的方法画出来
当然,这个正态分布的方差有讲究


image.png

像这样数据点比较接近的一般正态分布曲线窄一些:
image.png

像这样数据点比较疏松的一般正态分布曲线宽一些:
image.png

那么我们就可以根据这个得到两两数据点的相似性(记住我们感兴趣的数据点作为均值在中心)

由于每一群样本点的疏散程度不一样,也就是有的类内点与点之间的距离比较大,有的类内点与点之间的距离比较小,这样不利于将高维空间的距离映射到低维空间
所以计算时候要标准化一下:


image.png

这样我们就把“未标准化的相似性”给标准化了

image.png

这样,在二维空间里面能聚为一类的,不管疏松还是紧密,其相似度都一样
根据这个原理,我们计算两两数据点的相似性得分:


image.png

得分高的点聚类到一块儿

那么回到刚才:


image.png

我们就依靠相似性得分来移动点,将它们在低维空间里面重新聚类

总结

t-SNE降维是转化为概率,体现在引入正态分布,以似然值来计算相似性得分
t则是用t分布代替上述正态分布

顺便推荐个推送:http://bindog.github.io/blog/2016/06/04/from-sne-to-tsne-to-largevis/

这个是在R里面t-SNE的算法简介:https://mp.weixin.qq.com/s/F-hZG9Ch6lmrYmnA7QAA3w

你可能感兴趣的:(学习:StatQuest-t-SNE)