我在 MATLAB 中使用 TSNE 对大数据进行降维。我已经能够为 TSNE 生成二维散点图,它为每个标签以不同颜色显示集群的标签,但是,我无法在 3D 中这样做。参考https://uk.mathworks.com/help/stats/tsne.html,我使用了以下语法:-merged_data_all 是一个 21392x1974 表,最后一列名为 FunctionalGroup 包含不同的标签(类似于 Fisheriris 物种标签在 tsne 上的 Mathworks 示例中)。Y2 是我成功生成的 21392 x 3 双维的 3 维变量。
figure
v = double(categorical(merged_data_all.FunctionalGroup));
c = full(sparse(1:numel(v),v,ones(size(v)),numel(v),3));
scatter3(Y2(:,1),Y2(:,2),Y2(:,3),15,c,'filled')
title('3-D Embedding')
view(-50,8)
当我使用此代码时,我收到错误"Error using sparse- Index exceeds array bounds".
我什至尝试使用代码的修改版本并执行类似的操作
scatter3(Y(:,1), Y(:,2),Y(:,3),merged_data_all.FunctionalGroup)
在这种情况下,我得到一个错误,"Error using scatter3- Input arguments must be numeric, datetime or categorical".
我很困惑如何绘制一个 3d 散点图,有 14 种不同的颜色(对于我的功能组中的 14 种不同的标签类型,merged_data_all 列)。在这方面的任何帮助将不胜感激。谢谢