"TSNE" (机器学习方法)
- 用于 DimensionReduction、DimensionReduce、FeatureSpacePlot 和 FeatureSpacePlot3D 的方法.
- 使用 t 分布随机邻域嵌入降低数据维数.
详细信息和子选项
- "TSNE" 代表 t 分布随机邻域嵌入,是一种非线性非参数降维方法. 该方法尝试学习数据的低维表示,以保留数据的局部结构.
- "TSNE" 适用于具有非线性流形的数据集,特别适用于高维数据集的可视化; 但是,对于具有大量特征和大量示例的数据集进行训练则很慢.
- 下面显示了 "TSNE" 方法应用于基准数据集 Fisher's Irises、MNIST 和 FashionMNIST 的学习的二维嵌入:
- 给定原始空间中数据点 (xi, xj) 的相似矩阵
,"TSNE" 尝试找到低维嵌入
,使得低维空间中的
与
相匹配. - 原始空间中的相似性由
给出,其中
对应于邻域半径. 低维空间中的相似性由
给出. - 低维嵌入
通过最小化嵌入成本
计算. - 参数
由一个困惑度参数间接控制. 困惑度越大,聚类越少,反之亦然. - 可以给出以下子选项:
-
"Perplexity" Automatic 半径 ϵ "LinearPrereduction" False 在运行 t-SNE 方法之前是否执行线性缩减
范例
打开所有单元 关闭所有单元基本范例 (1)
fmnist = {[image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image]};
reduced = DimensionReduce[fmnist, 2, Method -> "TSNE"];ListPlot[MapThread[Labeled[#1, #2]&, {reduced, fmnist}], ...]选项 (2)
"Perplexity" (1)
从 ExampleData 加载 Fisher Iris 数据集:
iris = ExampleData[{"MachineLearning", "FisherIris"}, "Data"];RandomSample[iris, 5]diris = DimensionReduction[iris[[All, 1]], 2, Method -> "TSNE"]byspecies = GroupBy[iris, Last -> First];byspecies = diris /@ byspecies;ListPlot[Values[byspecies], PlotLegends -> Keys[byspecies]]diris = DimensionReduction[iris[[All, 1]], 2, Method -> {"TSNE", "Perplexity" -> 100}]byspecies = GroupBy[iris, Last -> First];
byspecies = diris /@ byspecies;
ListPlot[Values[byspecies], PlotLegends -> Keys[byspecies]]"LinearPrereduction" (1)
mnist = RandomSample[ResourceData["MNIST"][[All, 1]], 200];features = DimensionReduce[mnist, Method -> "TSNE"];在使用 "LinearPrereduction" 子选项运行 t-SNE 方法之前,通过执行线性缩减来查找特征:
features2 = DimensionReduce[mnist, Method -> {"TSNE", "LinearPrereduction" -> True}];ListPlot[List /@ features, ...]
ListPlot[List /@ features2, ...]应用 (1)
数据可视化 (1)
flowers = {[image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image], [image]};
reduced = DimensionReduce[flowers, 2, Method -> {"TSNE", "LinearPrereduction" -> True}];ListPlot[MapThread[Labeled[#1, #2]&, {reduced, flowers}]]