t分布随机邻居嵌入
Fisher虹膜数据集有虹膜的四维测量,以及相应的物种分类。通过使用减少维度来可视化该数据tsne
.
负载fisheririsrng默认的%为了再现性Y=tsne(meas);gscatter(Y(:,1),Y(:,2),物种)
使用各种距离度量,尝试在Fisher虹膜数据中获得更好的物种分离。
负载fisheririsrng (“默认”)%为了再现性Y = tsne(量,“算法”,“准确”,“距离”,“mahalanobis”);次要情节(2,2,1)gscatter (Y (: 1), Y(:, 2),物种)标题(“马哈拉诺比斯”)提高(“默认”)为了公平比较Y = tsne(量,“算法”,“准确”,“距离”,“余弦”);次要情节(2 2 2)gscatter (Y (: 1), Y(:, 2),物种)标题(的余弦)提高(“默认”)为了公平比较Y = tsne(量,“算法”,“准确”,“距离”,“切比切夫”); 子地块(2,2,3)gscatter(Y(:,1),Y(:,2),物种)名称(“Chebychev”)提高(“默认”)为了公平比较Y = tsne(量,“算法”,“准确”,“距离”,“欧几里得”);次要情节(2,2,4)gscatter (Y (: 1), Y(:, 2),物种)标题(“欧几里得”)
在这种情况下,余弦、切比切夫和欧几里得距离度量给出了相当好的簇分离。但是马氏距离度量并没有给出很好的分离。
楠
输入数据tsne
删除包含任意楠
条目。因此,在绘制绘图之前,必须从分类数据中删除任何此类行。
例如,将Fisher虹膜数据中的一些随机条目更改为楠
.
负载fisheririsrng默认的%为了再现性meas(rand(size(meas)) < 0.05) = NaN;
使用将四维数据嵌入到二维中tsne
.
Y = tsne(量,“算法”,“准确”);
警告:删除X或“InitialY”值中缺少NaN值的行。
确定从嵌入中删除了多少行。
长度(物种)长度(Y)
ans = 22
通过定位数据行,准备打印结果量
没有楠
值。
goodrows =没有(任何(isnan(量),2));
仅使用以下行打印结果:物种
对应的是量
没有楠
值。
gscatter (Y (: 1), Y(:, 2),物种(goodrows))
找到费雪虹膜数据的二维和三维嵌入,并比较每个嵌入的损失。3-D嵌入的损失可能更小,因为这种嵌入有更多的自由来匹配原始数据。
负载fisheririsrng默认的%为了再现性[Y,损失]=tsne(平均值,“算法”,“准确”);rng默认的为了公平比较(Y2, loss2) = tsne(量,“算法”,“准确”,“NumDimensions”3);流('二维嵌入有损失%g,三维嵌入有损失%g。\n'、损失、loss2)
二维嵌入损失0.124191,三维嵌入损失0.0990884。
正如预期的那样,三维嵌入具有更低的损耗。
查看嵌入。使用RGB颜色(1 0 0)
,(0 1 0)
,(0 0 1)
.
对于3-D图,使用分类
命令,然后使用稀疏的
函数如下。如果v
是正整数1、2或3的向量,对应于物种数据,然后是命令
稀疏(1:元素个数(v), v, 1(大小(v)))
为稀疏矩阵,其行为物种的RGB颜色。
gscatter (Y (: 1), Y(:, 2),物种,眼(3))标题(“二维嵌入”)
图v =双(属(种));c =全(稀疏(1:元素个数(v), v,(大小(v))的元素个数(v), 3));scatter3 (Y2 (:, 1), Y2 (:, 2), Y2(:, 3), 15日,c,“填充”)标题(“三维嵌入”)视图(-50 8)
X
—数据点N
——- - - - - -M
矩阵指定可选的逗号分隔的字符对名称、值
参数。的名字
是参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
Y = tsne (X,“算法”,“准确”,“NumPCAComponents”,50)
“算法”
—tsne
算法“barneshut”
(默认)|“准确”
tsne
算法,指定为“barneshut”
或“准确”
.的“准确”
该算法优化了原始空间和嵌入空间之间分布的Kullback-Leibler散度“barneshut”
当数据行数较大时,该算法执行的近似优化速度更快,占用的内存更少。
笔记
为“barneshut”
算法,tsne
使用knnsearch
寻找最近的邻居。
例子:“准确”
“距离”
—距离度量“欧几里得”
(默认)|“seuclidean”
|“cityblock”
|“切比切夫”
|“明可夫斯基”
|“mahalanobis”
|“余弦”
|“相关”
|“枪兵”
|“哈明”
|“jaccard”
|函数句柄距离度量,由下列之一指定。关于距离度量的定义,请参见pdist
.
“欧几里得”
-欧几里德距离。
“seuclidean”
-标准化的欧氏距离。每一行之间的坐标差X
查询矩阵的比例是通过除以相应的标准偏差元素计算出来的S=std(X,'omitnan')
.
“cityblock”
-城市街区距离。
“切比切夫”
—切比切夫距离,最大坐标差。
“明可夫斯基”
-指数为2的Minkowski距离。这与欧几里得距离相同。
“mahalanobis”
马氏距离,使用正定协方差矩阵计算X (X, omitrows)
.
“余弦”
-1减去观测值之间夹角的余弦(视为向量)。
“相关”
- 1减去观察值之间的样本线性相关性(作为值的序列处理)。
“枪兵”
-1减去样本斯皮尔曼观察值之间的等级相关性(视为值序列)。
“哈明”
-汉明距离,这是坐标不同的百分比。
“jaccard”
- 1减去雅卡尔系数,雅卡尔系数是不同的非零坐标的百分比。
自定义距离函数-使用指定的距离函数@
(例如,@distfun
).有关详细信息,请参阅更多关于.
在所有情况下,tsne
使用成对距离的平方来计算联合分布中的高斯核X
.
例子:“mahalanobis”
“NumDimensions”
—输出的维度Y
2.
(默认)|正整数“NumPCAComponents”
—PCA降维0
(默认)|非负整数PCA降维,指定为非负整数。之前tsne
嵌入高维数据,首先将数据的维数降低到NumPCAComponents
使用主成分分析
函数。当NumPCAComponents
是0
,tsne
不使用PCA。
例子:50
数据类型:单
|双
“标准化”
—规范化输入数据错误的
(默认)|真正的
规格化输入数据,指定为错误的
或真正的
什么时候真正的
,tsne
中心和尺度X
用列除以它们的标准差。
当特征X
在不同的尺度上,设定“标准化”
来真正的
.这样做是因为学习过程是基于最近邻的,所以大尺度的特征可以覆盖小尺度特征的贡献。
例子:真正的
数据类型:必然的
“则”
—初始嵌入点1 * randn的军医(N, NumDimensions)
(默认)|N
——- - - - - -NumDimensions
实矩阵初始嵌入点,指定为N
——- - - - - -NumDimensions
真正的矩阵,N
行数是多少X
.的tsne
优化算法使用这些点作为初始值。
数据类型:单
|双
“LearnRate”
—优化过程的学习率500
(默认)|正标量优化过程的学习率,指定为正标量。通常,从设置值One hundred.
通过1000
.
当学习者
太小了,,tsne
可以收敛到一个较差的局部最小值。当学习者
如果太大,优化最初会使Kullback-Leibler散度增大而不是减小。请参阅tsne设置.
例子:1000
数据类型:单
|双
“NumPrint”
—迭代显示频率20.
(默认)|正整数迭代显示频率,指定为正整数。当冗长的
名称-值对不正确0
,tsne
每次后返回迭代显示NumPrint
迭代。如果选项
名称-值对包含一个非空值“OutputFcn”
输入,然后输出函数在每个NumPrint
迭代。
例子:20.
数据类型:单
|双
“选项”
—优化选项“麦克斯特”
,“OutputFcn”
,“TolFun”
“西塔”
—Barnes-Hut折衷参数0.5
(默认)|从0到1的标量Y
——嵌入式分N
——- - - - - -NumDimensions
矩阵嵌入点,作为N
——- - - - - -NumDimensions
矩阵。每一行代表一个嵌入点。N
是数据的行数X
不包含任何东西楠
条目。看到使用NaN输入数据打印结果.
损失
-Kullback-Leibler散度模型输入和输出分布之间的Kullback-Leibler发散,作为非负标量返回。有关详细信息,请参阅t-SNE算法.
自定义距离函数的语法如下。
函数ZJ D2 = distfun(子)
tsne
通行证子
和ZJ
函数,函数计算距离。
子
这是一张一乘的票-N包含单行的向量X
或Y
.
ZJ
是一个M——- - - - - -N的多行矩阵X
或Y
.
您的函数返回D2
,这是一个M-距离的乘-1矢量J第th元素D2
观测值之间的距离是多少子
和ZJ (j,:)
.
提示
如果您的数据不是稀疏的,那么内置的距离函数通常比函数句柄更快。
tsne
在低维空间中构造一组嵌入点,这些嵌入点的相对相似性模仿原始高维点的相对相似性。嵌入点表示原始数据中的聚类。
粗略地说,该算法将原始点建模为来自高斯分布,并将嵌入点建模为来自学生的分布T分布。该算法试图通过移动嵌入点来最小化这两个分布之间的Kullback-Leibler散度。
有关详细信息,请参阅t-SNE.
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。