我有100 x 13个向量作为K-Means聚类的输入,我在C#中实现了它。 我想绘制我的聚类的结果,即13维数据点
我见过像OxyPlot,ZedGraph等2D和3D绘图库的例子。但是找不到任何绘制N维数据的例子(其中N> 3,在我的情况下是N = 13)。
任何人都可以建议我如何在C#中实现这一目标吗?
答案 0 :(得分:5)
嗯,你有13维显示器吗?然后绘制13维数据将很容易。
任何超出2维的东西都需要某种投影(好吧,实际上即使在2d你也需要一些投影)。如果添加时间(=动画),则可以通过旋转投影来合理地显示3个维度。
因此,为了可视化超过3个维度,有两种非常流行的技术:
维数降低。这包括使用PCA识别高方差的轴。或者,您可能想尝试多维缩放
平行坐标。每个尺寸都给定一个轴,但轴不相交但是平行绘制。每个矢量不再是一个点,而是一条连接轴在适当高度的线。因此,矢量(1,2,0)是一条折线,从第一轴上的1到第二轴上的2,第三轴上的0。
还有一些东西,比如笑脸,字形和类似的可视化技术。获取一些关于数据可视化的演讲幻灯片,您应该看到其中一些技术。
要查看并行坐标的示例,您可以将数据集加载到ELKI并在那里运行k-means。粗线应指示平行坐标图中的平均值,而细线则是数据实例。