2 min read

使用t-SNE进行预测的整合方案

t-SNE是一种无监督学习, 虽然在可视化化中加入\(y\)变量的分类颜色,进行调参, 实现了半监督。 但是,实际上,没有办法像回归和决策树等进行一个\(\hat f\)的拟合, 这里提供一个整合方案。

整合方案

假设有100个特征向量\(X=[x_1,\cdots,x_{100}]\),通过t-SNE,降维到 两个维度\(\tilde y_1,\tilde y_2\)。 假设\(y=0,1\)。 通过进行调参,我们得到了尽可能分开\(y=0\)\(y=1\)的两种情况。 我们导出\(\tilde y_1,\tilde y_2\),数据满足\(R \in R^{m\times2}\)。 因为调参部分能够尽可能分开\(y=0\)\(y=1\)的两种情况, 我们相信,任何模型都可以简单的fit出来,而且显著性很高。 t-SNE感觉是用来预测之前看变量的。 因此fit模型, \(\tilde y_1=f_1(X)\)\(\tilde y_2=f_2(X)\)。得到对应的beta系数,假设是用回归完成的, \(\hat \beta_{1}|best \space perplexity\)\(\hat \beta_{2}|best \space perplexity\)。 我们用\(\tilde y_1\)\(\tilde y_2\)对真实\(y\),得到\(y=f_3(\hat \beta_{1}|best \space perplexity, \hat \beta_{2}|best \space perplexity)\)。 因此我们得到\(\hat \beta_3\)\(\hat y\)

我们引入一个新样本,\(X_{new}\),通过以下路径得到\(\hat y_{new}\)\(X_{new}\xrightarrow{\hat \beta_{1}|best \space perplexity,\hat \beta_{2}|best \space perplexity}(\tilde y_{1,new},\tilde y_{2,new})\xrightarrow{\hat \beta_3}\hat y_{new}\)R t-SNE的包。 整合方案参考这个答案。:


以下解释一些比较重要的概念。

perplexity

perplexity,疑惑度,中文翻译不是特别好。 意思为,

guess the number of close neighbors

类似于KNN,纳入某个点高斯函数分布的计算。 一般来首,perplexity = 5-50比较好。

The t-SNE algorithm models the probability distribution of neighbors around each point. Here, the term neighbors refers to the set of points which are closest to each point. In the original, high-dimensional space this is modeled as a Gaussian distribution. In the 2-dimensional output space this is modeled as a t-distribution. The goal of the procedure is to find a mapping onto the 2-dimensional space that minimizes the differences between these two distributions over all points. The fatter tails of a t-distribution compared to a Gaussian help to spread the points more evenly in the 2-dimensional space.

The main parameter controlling the fitting is called perplexity. Perplexity is roughly equivalent to the number of nearest neighbors considered when matching the original and fitted distributions for each point. A low perplexity means we care about local scale and focus on the closest other points. High perplexity takes more of a “big picture” approach.

perplexity does matter

有个网站 ,用2D数据作为实验数据,进行了模拟,的确如此,perplexity=2perplexity=100效果都不好。 如图,可以看到这个2D数据进过t-SNE后,perplexity=2perplexity=100的情况并没有变好,但是 perplexity\(\in [5,50]\)还不错。

perplexity是一个超参数,没有sense的调了,所以必须.gird。 比如,随着样本增加,\(perplexity_{best}\) 会变的。

其他参数有, \(\epsilon\)学习率,参见梯度向上和向下的内容。 step是迭代次数,理论上,>5000是比较稳定了。

preserve local structure

t-SNE的特性是,保持了局部波动的特性(preserve local structure)1,非平衡的, 例如,让dense,密集的更加分散,分散的更加密集。 因此,很可能一个高斯分布变成了均匀分布。

随机变量的测试

t-SNE的好处是,没有瞎搞,你放一个随机变量组进去降维,还是随机的,只是说,分布概况可能从一个 高维度高斯分布变成了低维度均匀分布。

图形中的距离不重要

可以看到图中,perplexity\(\in [5,50]\)都不错,但是貌似距离都不一样,因此在 t-SNE图中,距离是没有意义的,因此我们在整合方案估计的时候,不能直接用线性回归,最好虚拟化。

图形中的波动圈圈大小不重要

可以看到蓝色波动更大在原图中,但是 在后面的测试中发现,小圈圈变大了,大圈圈变小了, 也印证了,保持了局部波动的特性


  1. 这点就比PCA好了,PCA是线性的,且没有抓local structure。