我想在 matlab 中创建一个 5 维绘图。我的工作区中有两个文件。一个是数据(150 * 4)。在这个文件中,我有 150 个数据,每个数据有 4 个特征。因为我想对它们进行分类,所以我有另一个名为“标签”(150*1)的文件,其中包含数据文件中每个数据的标签。换句话说,标签是数据类别,我有 3 个类别:1,2,3 我想绘制这个分类,但我不能......
纳里斯
我想在 matlab 中创建一个 5 维绘图。我的工作区中有两个文件。一个是数据(150 * 4)。在这个文件中,我有 150 个数据,每个数据有 4 个特征。因为我想对它们进行分类,所以我有另一个名为“标签”(150*1)的文件,其中包含数据文件中每个数据的标签。换句话说,标签是数据类别,我有 3 个类别:1,2,3 我想绘制这个分类,但我不能......
纳里斯
你需要考虑你想看到什么样的情节。5 个维度很难可视化,当然,除非您的超维度监视器正在工作。我的从来没有从维修店回来。(这应该教我发送它。)
说真的,5 维数据确实很难可视化。通常的解决方案是在二维空间中绘制点(例如,图形的屏幕坐标。这就是 plot 本质上所做的。)然后使用绘制点的各种属性来显示其他三个维度。这就是切尔诺夫面临的问题。如果你有统计工具箱,那么看起来 glyphplot 会帮助你。或者您可以在 3-d 中绘图,然后使用两个属性来显示其他两个维度。
另一个想法是在二维中绘制点以显示其中两个维度,然后使用颜色来指示其他三个维度。因此,分配给该标记的 RGB 将由其他三个维度定义。当然,这意味着您必须能够可视化颜色的 RGB 坐标表示的内容,因此您需要了解颜色在 RGB 空间中的表示。
您可以使用三个特征作为维度、第四个作为颜色和类作为不同的标记scatter3
来绘制数据data
figure,hold on
markerList = 'o*+';
for iClass = 1:nClasses
classIdx = dataClass==iClass;
scatter3(data(classIdx,1),data(classIdx,2),data(classIdx,3),[],data(classIdx,4),...
'marker',markerList(iClass));
end
当您使用颜色来表示其中一项功能时,我建议使用良好的颜色图,例如Matlab File Exchange 中的pmkmpjet
而不是默认的.
或者,您可以使用例如mdscale
将高维数据转换为 2D 以进行标准绘图。
有一个称为 SOM(自组织地图)的模型,它构建了多维空间的二维图像。