T分布式随机邻居嵌入
Fisher IRIS数据集具有四维虹膜测量,并将对应分类为物种。通过减少尺寸来通过减少尺寸来可视化此数据徐
.
加载fisheririsRNG.默认的重复性的%y = tsne(meas);G箭头(Y(:,1),Y(:,2),物种)
使用各种距离指标尝试在Fisher IRIS数据中获得物种之间的更好分离。
加载fisheririsrng (“默认”)重复性的%y = tsne(meas,'算法'那“准确”那“距离”那'mahalanobis');子图(2,2,1)G谓词(Y(:,1),Y(:,2),物种)标题('mahalanobis')RNG(“默认”)公平比较%y = tsne(meas,'算法'那“准确”那“距离”那'余弦');子图(2,2,2)G谓词(Y(:,1),Y(:,2),物种)标题('余弦')RNG(“默认”)公平比较%y = tsne(meas,'算法'那“准确”那“距离”那'chebbychev');子图(2,2,3)G谓词(Y(:,1),Y(:,2),物种)标题(“Chebychev”)RNG(“默认”)公平比较%y = tsne(meas,'算法'那“准确”那“距离”那“欧几里得”);次要情节(2,2,4)gscatter (Y (: 1), Y(:, 2),物种)标题('euclidean')
在这种情况下,余弦,Chebychev,和欧几里德距离度量给出了合理的良好的集群分离。但是马氏距离度量并没有给出一个很好的分离。
南
输入数据徐
删除包含任何内容的输入数据行南
参赛作品。因此,您必须在绘制之前从分类数据中删除任何此类行。
例如,将费雪虹膜数据中的一些随机项改为南
.
加载fisheririsRNG.默认的重复性的%MEAS(rand(尺寸(meas))<0.05)= nan;
使用四维数据嵌入两个维度徐
.
y = tsne(meas,'算法'那“准确”);
警告:删除了x或'inally'值中的NaN缺失值的行。
确定从嵌入中删除了多少行。
长度(物种) - 长度(y)
ans = 22.
准备通过定位行绘制结果量
那没有南
价值观。
goodrows =没有(任何(isnan(量),2));
仅使用行的行绘制结果物种
对应于量
没有南
价值观。
gscatter (Y (: 1), Y(:, 2),物种(goodrows))
找到Fisher Iris数据的2-D和3-D嵌入,并比较每个嵌入的损耗。对于3-D嵌入,损失很可能是较低的,因为这种嵌入具有更多的自由来匹配原始数据。
加载fisheririsRNG.默认的重复性的%[y,损失] = tsne(meas,'算法'那“准确”);RNG.默认的公平比较%(Y2, loss2) = tsne(量,'算法'那“准确”那'numdimensions'3);流('2-D嵌入有损失%g,3-d嵌入有损失%g。\ n'、损失、loss2)
二维包埋损失0.124191,三维包埋损失0.0990884。
正如预期的那样,3-D嵌入损失较低。
查看嵌入式。使用RGB颜色(1 0 0)
那[0 1 0]
,(0 0 1)
.
对于3-D图,将物种转换为使用该物种的数字值分类
命令,然后使用疏
函数如下。如果V.
是正整数1,2或3的矢量,对应于物种数据,然后是命令
稀疏(1:Numel(v),v,v,尺寸(v)))
是一个稀疏矩阵,它的行是物种的RGB颜色。
G箭偶(Y(:,1),Y(:,2),物种,眼睛(3))标题('2-D嵌入')
图v = double(分类(种));c = full(稀疏(1:numel(v),v,v,v)),numel(v),3));散射3(Y2(:,1),Y2(:,2),Y2(:,3),15,C,'填充') 标题('3-D嵌入')查看(-50,8)
X
-数据点N
-经过-m
矩阵指定可选的逗号分离对名称,价值
论点。名称
是参数名称和价值
是对应的值。名称
必须出现在引号内。您可以按如下顺序指定几个名称和值对参数Name1, Value1,…,的家
.
y = tsne(x,'算法','确切','numpcacomponents',50)
'算法'
-徐
算法'barneshut'
(默认)|“准确”
徐
算法,指定为'barneshut'
或“准确”
.这“准确”
算法优化原始空间与嵌入式空间之间的分布的Kullback-Leibler分歧。这'barneshut'
算法执行近似优化,当数据行的数量大时,较快的优化并使用较少的内存。
笔记
为了'barneshut'
算法,徐
使用knnsearch.
找到最近的邻居。
例子:“准确”
“距离”
-距离度量“欧几里得”
(默认)|“seuclidean”
|“cityblock”
|'chebbychev'
|闵可夫斯基的
|'mahalanobis'
|'余弦'
|'相关性'
|“枪兵”
|'汉明'
|'jaccard'
|功能手柄距离度量,由以下之一指定。有关距离指标的定义,请参阅Pdist.
.
“欧几里得”
- 欧几里德距离。
“seuclidean”
- 标准化的欧几里德距离。行之间的每个坐标差异X
查询矩阵通过除以所计算的标准差的相应元素进行缩放s = std(x,'omitnan')
.
“cityblock”
- 城市街区距离。
'chebbychev'
- Chebychev距离,即最大坐标差异。
闵可夫斯基的
- Minkowski与指数2.这与欧几里德距离相同。
'mahalanobis'
-马氏距离,使用正定协方差矩阵计算COV(x,'omitrows')
.
'余弦'
- 1减去观测之间夹角的余弦(作为矢量处理)。
'相关性'
- 一个减去观察结果之间的样本线性相关性(作为值序列处理)。
“枪兵”
- 一个减去样本Spearman之间的检测之间的秩相关性(视为值序列)。
'汉明'
-汉明距离,即不同坐标的百分比。
'jaccard'
- 一个减去Jaccard系数,这是不同的非零坐标的百分比。
自定义距离功能 - 使用的距离功能@
(例如,@distfun
).有关详细信息,请参阅更多关于.
在所有情况下,徐
的联合分布中使用平方对距离计算高斯核X
.
例子:'mahalanobis'
'numdimensions'
-输出的尺寸y
2
(默认)|正整数'numpcacomponents'
-PCA尺寸减少0.
(默认)|非负整数PCA降维,指定为非负整数。之前徐
嵌入高维数据,首先将数据的维度降低到NumPCAComponents
使用PCA.
功能。什么时候NumPCAComponents
是0.
那徐
不使用PCA。
例子:50.
数据类型:单
|双倍的
'标准化'
-标准化输入数据错误的
(默认)|真正的
规范化输入数据,指定为错误的
或真正的
.什么时候真正的
那徐
中心和鳞片X
用标准差除以各列。
当特征X
在不同的尺度上,设置'标准化'
至真正的
.这样做是因为学习过程是基于最近邻的,所以大尺度特征可以覆盖小尺度特征的贡献。
例子:真正的
数据类型:逻辑
'initialy'
-初始嵌入点1 * randn的军医(N, NumDimensions)
(默认)|N
-经过-numdimensions.
真实矩阵初始嵌入点,指定为一个N
-经过-numdimensions.
真正的矩阵,N
是行的行数X
.这徐
优化算法使用这些点作为初始值。
数据类型:单
|双倍的
'学习'
-优化过程的学习率500.
(默认)|正标量优化过程的学习率,指定为正标量。通常,设置值One hundred.
通过1000
.
什么时候学习
太小,徐
能收敛到一个可怜的局部最小值。什么时候学习
太大了,优化可以最初具有kullback-leibler发散增加而不是减少。看tsne设置.
例子:1000
数据类型:单
|双倍的
'numprint'
-迭代显示频率20.
(默认)|正整数迭代显示频率,指定为正整数。当。。。的时候详细的
名称 - 值对不是0.
那徐
每次后返回迭代显示Numprint.
迭代。如果是选项
名称-值对包含一个非空值'outputfcn'
条目,然后输出函数在每一个之后运行Numprint.
迭代。
例子:20.
数据类型:单
|双倍的
'选项'
-优化选项'maxiter'
那'outputfcn'
,'tolfun'
'theta'
-Barnes-Hut Tressoff参数0.5
(默认)|从0到1的标量y
——嵌入式分N
-经过-numdimensions.
矩阵嵌入点,返回为N
-经过-numdimensions.
矩阵。每行代表一个嵌入点。N
是数据行数吗X
不包含任何南
参赛作品。看绘图结果与NAN输入数据.
失利
- Kullback-Leibler分歧模型输入和输出分布之间的Kullback-Leibler发散,以非负标量返回。有关详细信息,请参阅T-SNE算法.
自定义距离功能的语法如下。
函数ZJ D2 = distfun(子)
徐
通过Zi.
和ZJ.
你的函数,你的函数计算距离。
Zi.
是一个1-by-N中包含单行的向量X
或y
.
ZJ.
是一个m-经过-N包含多行的矩阵X
或y
.
您的功能返回D2
,这是一个m-by-1距离矢量。这jTh元素D2
是观测之间的距离吗Zi.
和zj(j,:)
.
小费
如果您的数据不稀疏,则通常内置距离函数比函数句柄更快。
徐
在低维空间中构造一组嵌入点,其相对相似度模拟了原始高维点的那些。嵌入点显示了原始数据中的群集。
粗略地,算法模拟了来自高斯分布的原始点,以及来自学生的嵌入点T.分配。该算法试图通过移动嵌入点来最小化这两个分布之间的kullback-leibler发散。
有关详细信息,请参阅t-SNE.
Tiene UnaVersiónModififada de Este Ejegro。¿desea abrir este ejegro ejemero con modififiones?
在MATLAB中有一个对应的序列:
ejecute el comandoinsuciéndoloen la Ventana de comandos de matlab。los navegadores网站没有adminiten comandos de matlab。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。