考虑到他们的友谊的力量绘制一组点

时间:2014-06-15 01:46:30

标签: algorithm graph

我有一个n-by-n非负整数的对称矩阵F:F [i,j]衡量我和j之间的距离。我想以这样的方式找到代表n个人的平面中的n个点

  • 两个近在咫尺的人用接近的点表示,

  • 理想情况下,两个不那么接近,甚至没有亲密友谊链接的家伙都是由很远的点代表。

是否有标准算法来执行此操作?

1 个答案:

答案 0 :(得分:1)

您所描述的内容通常被称为多维缩放(MDS)或主要坐标分析(PCA - 但请注意,还有其他技术也称为PCA)。

有许多用于执行MDS的众所周知的算法。这主要是因为经典方法非常慢 - O(N 2 )。大多数其他人都试图减少运行时间,同时尽量减少准确性的损失。

至少根据我的经验,Landmark多维缩放(LMDS)保持非常接近完整MDS的准确性,但大大减少了运行时间。这里的基本思想是在点的子组上计算MDS,计算是一种将各个部分组合在一起的方法。

如果你真的想要最高速度,并且不关心准确性,你可以考虑使用FastMap算法。

它的价值:我通常发现最有用的是使用LMDS将原始数据减少到大约17-21个自由度,然后(如果你想显示结果)减少使用FastMap从那里到3或2维。我还没有充分使用完整的MDS,但是如果你的工作点不够实用,那么它通常是首选的解决方案。

以下是一些相关链接:

  1. MDS
  2. LMDS
  3. FastMap