matlab利用t-SNE实现高维数据可视化(tsne函数用法实例)

tsne用法

tsne - t-Distributed Stochastic Neighbor Embedding

This MATLAB function returns a matrix of two-dimensional embeddings of the high-dimensional rows of X.
该函数作用就是将高维数据以二维坐标形式进行可视化。


一、语法

  1. Y = tsne(X)
  2. Y = tsne(X,Name,Value)

两种使用方法,一般使用选择第一种即可。

二、使用步骤

步骤1:数据矩阵X为1024x320,列向量表示1024维数据样本,共320个样本点
步骤2:Y = tsne(X);

load YaleB.mat
X = fea(:,1:320);              % 320个样本数据,以1024维列向量表示,组成1024x320数据矩阵X
X = matrixNormalize(X);        % 数据标准化
label = gnd(1:320);            % 数据标签1-5,样本共5X = X';						   % 由于tsne标准输入数据以行向量表示,因此先转置
Y = tsne(X);                  % 得到的矩阵为Nx2NN个样本,Y矩阵为320x2
gscatter(Y(:,1), Y(:,2),label);% 若无label输入,则画出的图没有色彩区分

三、Y = tsne(X,Name,Value)用法

  1. Y = tsne(X,‘Algorithm’,‘exact’);
  2. Y = tsne(X,‘Algorithm’,‘exact’,‘Distance’,‘euclidean’);

’Algorithm’ — tsne 进行数据投影时所用算法,两种选择’barneshut’, ‘exact’。

  1. 默认算法使用’barneshut’,特点是当数据样本量很大时,近似最优,运算速度快,占用内存少。
  2. 'exact’算法优化了原始空间和嵌入空间之间的分布的Kullback-Leibler散度,特点精度高。

’Distance’ — 距离计算方法,多种选择’euclidean’ (default) | ‘seuclidean’ | ‘cityblock’ | ‘chebychev’ | ‘minkowski’ | ‘mahalanobis’ | ‘cosine’ | ‘correlation’ | ‘spearman’ | ‘hamming’ | ‘jaccard’ | function handle

默认基于欧几里得距离,根据实际数据效果选取,哪种效果图好用哪个。常见的有 cosine, Chebychev与 Euclidean,三种距离方式效果图分别为:

更多说明参考MathWork官方https://www.mathworks.com/help/releases/R2019a/stats/tsne.html?container=jshelpbrowser#bvh3rti-4

评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值