1、PCA 线性降维
PCA 作为一种线性降维算法,它的线性体现在其本质是观察坐标系替换的时候,新坐标轴的生成本质是原始特征的一个线性组合,最后通过删减可解释方差最小的主成分完成数据的特征降维。
2、非线性降维
对于非线性降维算法,在于它不是寻找基于原始特征线性组合的方式生成新观察坐标系,而是关注数据集中相邻样本之间的相似性,并试图在低维空间中再现这些相似性。
2.1 t_SNE 降维策略
t_SNE 算法策略在于首先计算了高维空间中样本与样本间的欧式距离并转换为相似性分数,然后在一个二维空间上通过随机化所有样本并持续移动这些样本(移动过程基于KL散度建模),使得它们在二维空间中彼此间的距离与原始高维空间中的距离分布尽可能相似完成降维。
优点: t_SNE 相比 PCA 方法主要更好地 突出 数据集中的成簇特征。
缺点:
- ①生成的( tsne_1 和 tsne_2 特征轴 ) 不具有可解释性,因为它们不代表原始特征的逻辑组合,像 PCA 方法就可以清楚的根据特征向量解析主成分轴上原始特征的方差贡献情况。
- ② t-SNE 在低维空间中的距离主要用来反映簇内样本间的相似性,但 簇间的距离不具有意义。比如对于在 t-SNE 中展示的3个集簇:两个距离很近,第三个距离另外两个很远,但不能说前两个簇彼此之间的相似性比它们与第三个集群之间的相似性更高。
- ③主要用于可视化,很难用于其他目的。
2.2 基本过程
step.1 首先计算原始高维空间内两两样本间的 欧式距离;然后通过高斯函数模型(高斯核)将距离度量矩阵转换成样本间的相似性分数矩阵 $X_{raw}$。由于 高斯核 受样本方差的影响,直接转换出的相似性分数对于一些稀疏的簇可能无法表征簇特征(因为样本间相似度变得很低),所以为了不同 $\sigma$ 参数计算的相似性分数变得可比同时在矩阵中突出簇特征,需要对原始的分数基于行进行比例归一化处理($p_{ij\_scale} = \frac {p_{ij}}{sum(p_i)}$)。
step.2 接下来初始化两个 tsne特征轴 并生成随机分布的所有样本。在这个二维空间内计算样本间的距离,并使用 t-分布概率密度函数 转换距离矩阵为相似性分数矩阵$X_{new}$。
t-SNE 本质是方法源于 SNE 降维策略提出的优化方法,SNE 在低维空间下也使用高斯函数来表达两点之间的相似度,但在低维后容易发生 crowding problem (拥挤问题,指的是各个簇聚集在一起无法区分)。 t-SNE 方法的提出主要是为了解决前者降维后所发生的 拥挤问题,在低维空间下使用了 t分布 替代高斯分布来表达两点之间的相似度, t分布 相比高斯分布函数曲线更平坦和具有更长的拖尾,这意味着高维空间内中低等相似的两个样本在低维空间的距离需要被放大(同理缩小相似样本的距离), t-分布概率密度函数 转换出的相似度才能与高斯核的结果相同。因此 t分布 的引入很好地满足了使得同一簇内的点(距离较近)聚合的更紧密,不同簇之间的点(距离较远)更加疏远的可视化目标。
step.3 最后一步就是根据两个相似性分数矩阵 $X_{raw}$ 和 $X_{new}$ 的差异性,使用 KL散度统计量 建模优化目标,计算梯度来移动初始化的系列样本点,使得每个样本都向高维特征空间中靠近它的样本点 靠拢,并 远离 高维特征空间中远离它的其它样本点。从而逐渐减少两个相似性分数矩阵的差异,也就是两个矩阵的KL散度统计量,一定迭代次数后收敛在低 KL 散度的获得tsne降维结果。
$$ C = \sum_{i}KL(P_i\|Q_i) = \sum_i\sum_j{p_{j|i}\log{\frac {p_{j|i}}{q_{j|i}}}}$$
$P$ 是高维空间上的相似性矩阵;$Q$ 是每次迭代后低维空间上的相似性矩阵。
tsne 使用KL散度(相对熵)作为损失函数存在罚分不对称的问题,即对于高维近低维远的情况罚分高(p = 0.99,q= 0.0001,cost = 0.99*log(0.99/0.0001) = 9),反过来对于高维远低维近的极端情况罚分却趋近于零(p = 0.0001,q= 0.99,cost = 0.0009)。从而导致目标点的移动过程中属于高维近低维远情况的移动步长更长($\frac {\partial C}{\partial q} = -\frac {p}{q}$),发生迭代到最后低维空间上出现整体相似的簇之间的距离比与不相似的簇之间的距离还要远的情况。也就是 tSNE 降维结果在全局结构上存在失真可能,所以 t-SNE 通常被认为在低维表示中主要保留相似样本的簇特征,但它不保留全局结构。最终表示中彼此接近的样本可以解释为彼此相似,但不能轻易说出原始数据中哪些样本簇与其它样本簇更相似。
Reference
① t-SNE 算法过程
② tsney与umap的差别
③ Maximizing similarity with t-SNE and UMAP
④ Softmax函数和交叉熵Cross-entropy以及KL散度求导_winycg的博客-CSDN博客_kl散度求导