T_SNE降维与可视化

来源:互联网 发布:徐州华道数据地址 编辑:程序博客网 时间:2024/05/16 01:35

在http://lvdmaaten.github.io/tsne/可以下载到matlab,python等多个版本的实现
我用matlab比较熟悉,所以采用的是matlab版本
T_SNE的主要思想是:
1. 将高维数据转化为K-means data network
2. 投影为二维或者三维数据,达到可视化的效果

可以看到经过分类训练过后的特征,聚类非常明显
(http://img.blog.csdn.net/20171118220615714?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGt1X2xhbmd6aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
wiki_image_ori
(http://img.blog.csdn.net/20171118220921404?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGt1X2xhbmd6aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
wiki_text_ori
(http://img.blog.csdn.net/20171118220953190?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGt1X2xhbmd6aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
wiki_image
(http://img.blog.csdn.net/20171118221019455?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGt1X2xhbmd6aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
wiki_text
(http://img.blog.csdn.net/20171118221048315?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGt1X2xhbmd6aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3D example
(http://img.blog.csdn.net/20171118221118102?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGt1X2xhbmd6aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

% Load dataclear;load('./WIKI/test_img.mat');load('./WIKI/test_txt.mat');load('./WIKI/test_lab.mat');ind = randperm(size(test_img, 1));train_image = test_img(ind(1:693),:);train_text = test_txt(ind(1:693),:);train_labels_text = test_lab(ind(1:693));train_labels_image = test_lab(ind(1:693))+10;% Set parametersno_dims = 2;initial_dims = 200;perplexity = 30;mappedimage = tsne(train_image, train_labels_image, 300, initial_dims, perplexity);mappedtext = train_text;train_X=[mappedimage;mappedtext];train_labels=[train_labels_text;train_labels_image];% Run t_SNEmappedX = tsne(train_X, train_labels, no_dims, initial_dims, perplexity);% Plot resultsgscatter(mappedX(:,1), mappedX(:,2),train_labels,[0 0 0;1 1 0; 1 0 0;0 0 1;0 1 1;0 1 0;0.8 0.4 0.1;1 0.7 0.8;1 0.9 0.8;0.4 0.35 0.8;0 0 0;1 1 0; 1 0 0;0 0 1;0 1 1;0 1 0;0.8 0.4 0.1;1 0.7 0.8;1 0.9 0.8;0.4 0.35 0.8],'DDDDDDDDDD..........',10);
原创粉丝点击