Hinton, one of the deep learning giants, has a classic paper visualizing data using T-sne in the field of dimensionality reduction. This method is the classic of the manifold (non-linear) data dimensionality reduction, and there are few new dimensionality reduction methods to be completely surpassed. Compared with PCA and other linear methods, this method can effectively project the data into the low dimension space and maintain a strict segmentation interface. The disadvantage is that the computational complexity is large, the general recommendation is to first linear dimensionality reduction and then use Tsne to reduce the dimension. The Python Sklearn has a corresponding implementation. I'm now using TensorFlow to implement this algorithm.
The core idea of Tsne is to consider the high-dimensional data as the Point XI x_i in the high-dimensional space, and then to map it to Yi Y_i in the low dimension space by manifold method, and to keep its space distance. That is, the high dimensional space is near/far apart, and maps to the lower dimensional space still nearer/farther. In order to get near the point closer, the distance is measured by the Gaussian function: dij=e−|xi−xj|22σ2/∑i,je−|xi−xj|22σ2 D_{ij} = E^{-\frac{|x_i-x_j|^2}{2\sigma ^2}}/\sum_{i,j }{e^{-\frac{|x_i-x_j|^2}{2\sigma ^2}}} In order to balance the repulsion between the points, we have to let Pij=pji=dij+dji2 p_{ij}=p_{ji}=\frac{d_{ij}+d_{ji}}{2}
In order to avoid the interference of noise and outliers in the mapping of low dimensional space, the formula of T distribution in Hinton in low dimensional space defines a new distance: qij= (1+|yi−yj|2) −1∑i,j (1+|yi−yj