本文仅是博主自己学习用来加深印象和留存整理,对该内容有兴趣请去阅读原文
首先降维很重要
先从PCA开始
PCA,主成份分析,有很多种实现方案,这里主要是其中两种:Eigen分解和奇异值分解(SVD)
这两种方法是靠自己的方式找到一种操作并分解x的方法,以便接下来可以将分解的结果相乘,从而以更少的维度表征最大化的信息。
所以Eigen分解和SVD分解都是分解矩阵的方式。下面是两种方式的流程图。
这两种都是纯线性代数的方法,意味着使用PCA就是在另一个角度看待真实数据,这是PCA独有的特性。
因为所有的运算都是线性的,所以SVD的速度非常快。
同样的数据PCA总是给出同样的答案。
∑是一个对角矩阵,其中p(维度数)个对角值(被称为奇异值),他们的大小表明了它们对保存信息的重要程度。
之后是实现的代码。
t-SNE
t-SNE是一种相对较新的方法,起源于2008年。
符号定义:X是原来的数据;P是一个矩阵,显示了高维(原来的)空间中X中的点之间的亲和度(约等于距离);Q也是一个矩阵,显示了低维空间中的数据点之间的亲和度。如果你有n个数据样本,那么Q和P都是nxn的矩阵(从任意点的距离包含自身)。
t-SNE拥有的是独特的测量距离的方式,测量高维空间中数据点之间的距离的方式,测量低维空间中的数据点之间的距离的方式以及一种测量P和Q之间的距离的方式。
算法流程:
这个算法有两个输入,一个是数据本身,另一个被称为困惑度。
困惑度是指在优化过程中数据的局部(封闭点)和全局结构的焦点的平衡程度——本文建议保持在5到50之间。
更高的困惑度意味这一个数据点会把更多的数据点看作是其紧密的近邻点,更低的困惑度就更少。
你可以看到给定一个好的困惑度,数据会聚类,但要注意超参数的敏感性(如果不给梯度下降提供学习率,我无法找到聚类)。
在我们继续之前,我想说如果使用正确,t-SNE 会是一种非常强大的方法,而不会受到前面提及的负面影响,只是你要清楚如何使用它。
自编码器已经