t分布随机邻居嵌入
Fisher虹膜数据集有虹膜的四维测量,以及相应的物种分类。通过使用减少维度来可视化该数据tsne
.
负载fisheririsrng默认的%的再现性Y = tsne(量);gscatter (Y (: 1), Y(:, 2),物种)
在Fisher虹膜数据中,使用不同的距离度量来尝试获得更好的物种分离。
负载fisheririsrng (“默认”)%的再现性Y = tsne(量,“算法”,“准确”,“距离”,“mahalanobis”);次要情节(2,2,1)gscatter (Y (: 1), Y(:, 2),物种)标题(“Mahalanobis”)提高(“默认”)为了公平比较Y = tsne(量,“算法”,“准确”,“距离”,的余弦);次要情节(2 2 2)gscatter (Y (: 1), Y(:, 2),物种)标题(的余弦)提高(“默认”)为了公平比较Y = tsne(量,“算法”,“准确”,“距离”,“chebychev”);次要情节(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);流('2-D嵌入损失%g, 3-D嵌入损失%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,“填充”)标题(“3 d嵌入”)视图(-50 8)
X
- - - - - -数据点n
——- - - - - -米
矩阵指定可选的逗号分隔的对名称,值
参数。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
Y = tsne (X,“算法”,“准确”,“NumPCAComponents”,50)
算法
- - - - - -tsne
算法“barneshut”
(默认)|“准确”
tsne
算法,指定为“barneshut”
或“准确”
.的“准确”
算法优化原始空间和嵌入空间之间分布的Kullback-Leibler发散。的“barneshut”
当数据行数较大时,算法执行近似优化,速度更快,占用内存更少。
请注意
为“barneshut”
算法,tsne
使用knnsearch
寻找最近的邻居。
例子:“准确”
距离
- - - - - -距离度量“欧几里得”
(默认)|“seuclidean”
|“cityblock”
|“chebychev”
|闵可夫斯基的
|“mahalanobis”
|的余弦
|“相关”
|“枪兵”
|“汉明”
|“jaccard”
|函数处理距离度量,由下列之一指定。关于距离度量的定义,请参见pdist
.
“欧几里得”
——欧氏距离。
“seuclidean”
-标准化的欧氏距离。每一行之间的坐标差X
查询矩阵的比例是通过除以相应的标准偏差元素计算出来的S =性病(X, omitnan)
.
“cityblock”
-城市街区距离。
“chebychev”
—切比切夫距离,最大坐标差。
闵可夫斯基的
闵可夫斯基距离的指数是2。这和欧氏距离是一样的。
“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
.
当LearnRate
太小了,tsne
可以收敛到一个较差的局部最小值。当LearnRate
太大时,优化初始会使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
函数,函数计算距离。
子
是1 -n包含单行的向量X
或Y
.
ZJ
是一个米——- - - - - -n的多行矩阵X
或Y
.
你的函数返回D2
,这是一个米-乘1的距离向量。的jth元素D2
观测值之间的距离是多少子
和ZJ (j,:)
.
提示
如果您的数据不是稀疏的,那么内置的距离函数通常比函数句柄更快。
tsne
在低维空间中构造一组嵌入点,这些嵌入点的相对相似性模仿原始高维点的相对相似性。嵌入点表示原始数据中的聚类。
粗略地说,该算法将原始点建模为来自高斯分布,并将嵌入点建模为来自学生的分布t分布。该算法试图通过移动嵌入点来最小化这两个分布之间的Kullback-Leibler散度。
有关详细信息,请参见t-SNE.
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。