一维世界地图?


59

有点奇怪的问题,但是希望可以在这里提出。

有没有人听说过世界地图的“一维”投影-将地球上的所有点映射到一条直线上?

我当时正在考虑做这样的事情-试图让那些在世界上“亲密”的城市保持在“亲密”的状态。

在执行此操作之前,我想知道该领域的最新技术水平是什么?


好主意,但我想说这条线是“二维”特征。
文林

16
线是一维的,因为它只需要一个坐标就可以定位沿线的任何点。点是0维的,多边形是2维的。
blah238 2011年

5
Apple Peel投影:t1.thpservices.com/fotos/thum4/013/881/sfd-362035.jpg,尽管我还没有遇到任何现成的算法... ;-)
matt wilkie

2
@Matt那是一个可爱的人。近似地,此投影将点(lat,lon)=(f,l)映射到(Int((90-f)/ e),l),其中e是果皮中“螺旋”的数量。(我有点困惑,但这是要点。)问题在于,随着e变大,不连续点变得密集,这意味着它与所需行为恰好相反:几乎所有成对的点地球上相距较近的位置相互映射。
Whuber

Answers:


49

将距离(具有给定距离)的点集合映射到欧几里得空间(例如,三个空间,一个平面甚至一条线)中且距离失真最小的一般技术称为多维缩放(MDS)。有几种算法。解决方案可在R中免费获得,并且通常随商业统计软件包一起提供。

使用Stata 11的默认MDS设置在此处映射了美国最大的20个城市。刻度表示100公里间隔。

一维美国


太棒了-是的,这正是我打算做的-尽管我希望使用称为“随机邻居嵌入”的MDS算法,但实际上是相同的。不过,我知道您已经这样做了。我认为最主要的是,对我来说,这看起来很合逻辑/很好!我的意思是有趣,这是自己的方式。谢谢!
utunga 2011年

多维缩放是2D素材!
huckfinn 2014年

@huckfinn可以在任何数量的维度上完成;图2仅是常见的应用。见,除其他外Buja等。他们没有对维度k进行限制,并且其第一个示例(图1左)显然在一个维度上起作用。或者只是查看我的一维MDS解决方案!
whuber

是的,的确如此,但是在2D IMO以下是没有意义的,MDS将降级为正常距离测量并重新投影到数字光束。排序变成排序我不知道吗?
huckfinn 2014年

您是否真的声称我在此答案中显示的地图“没有意义”?您将需要进行大量解释,因为任何人都可以清楚地看到(1)它确实传达了有用的地理信息,并且(2)它并没有减少为“正常距离测量”。
ub

17

非常感谢@whuber的最初答案。以为我应该上传我做同样的结果...

对于我使用的特殊形式的MDS,值得使用的是称为t-SNE(又称为“ t分布随机Neihbor嵌入”)的图像,以获取以下图像。

这是按顺序排列的所有城市的图片-左轴是该城市的实际一维位置,并且该城市从上到下,从左到右按该轴的顺序排列。 城市排列

这是我拍摄的城市线但在世界地图上绘制的另一张图片。我想最重要的是,这个问题可以简化为非常接近旅行销售人员的问题-但区别在于它不仅是城市的排序,而且是城市的排序将城市映射到一维线...

穿越世界地图的路径

如果有人想要此处使用的完整输出数据或方法,请给我发消息。

-

编辑:

回应@whuber的表扬。

是的,当您强调局部距离时(即相邻邻居的局部距离应尽可能接近世界地图上的实际距离),您是对的,MDS问题简化为旅行商问题。但是,如果您强调在更宽/更适中的范围内优化(或匹配)距离,则会得到不同的结果。例如,这是当您为“困惑度”使用更高的值时,t-sne算法给出的结果:在此处输入图片说明


感谢分享。这确实更类似于旅行推销员:不是MDS。MDS解决方案将产生更多的失真,但在世界与地图之间的规则,可预测的关系会更多。因此,您的答复构成了对原始问题的另一种解决方案。
ub

更新了我的答案以提供其他变化,请对您的观点感兴趣。
utunga

第二,确实是一个好奇而有趣的解决方案。看来您的“ t-sne”算法试图精确地访问每个点。在2D情况下,这类似于在每个点周围创建高度精确的局部投影,然后使该投影在各点之间断裂,严重扭曲其距离和方向,同时保持接近完美的局部保真度。我想这可能有一些特殊的用途,但实际上,通常会出现一点投影误差,因为它允许足够的余量来大大改善全局解决方案。
whuber

12

您可以做的是用一维空间填充曲线(例如Peano曲线或希尔伯特曲线)覆盖二维空间。然后,将点映射到曲线上的最近点。展开曲线,您应在某种程度上获得一条直线,该直线的距离最近的城市在该直线上。

它不是完美的(我认为什么都不可能),但是我已经看到它可以用作旅行推销员算法的基础-这个想法是,如果您沿着路线进行推销员旅行,那将是一个很好的近似最好的解决方案。


4
这确实可行,但是要小心:距离该直线最近的城市将在空间上靠近,但是距离太空的城市通常在该线上不会彼此靠近(曲线连续映射ℝ->ℝ²,请不要有一个连续的逆)。
2011年

2
这个答案将受益于Peano / Hilbert曲线的图形示例(和/或定义的链接)
matt wilkie 2011年

1
还是您可以自己去Wikipedia ...就在那儿,我真的不太明白在这里重复Wikipedia的意义...
Spacedman 2011年

1
好吧,我想你可以重复一遍!一两个链接和一个图像怎么样?
blah238

出于说明目的,我们可以查看Randall Munroe的XKCD互联网地图,该地图正是使用了这种技术(尽管相反,
即将

9

奇怪的问题通常是最有趣的问题!

如果您正在寻找制图中使用尺寸的最新技术,则可以从Bertin的图形符号学开始。根据Bertin的说法,一张纸(或ipad表面)具有3个尺寸:两个平面尺寸,加上值/纹理。图形符号学提供了将信息维映射到这些表示维的规则。当两个平面尺寸为空间尺寸时,图形为地图,第三个尺寸用于表示信息。

如果要制作一维地图,则意味着您选择限制不要使用纸的某一尺寸来表示想要的信息(城市之间的距离)。是否真的需要施加这样的约束而不制作法线贴图?

如其他答案中所述,如果确实需要它,则无法完成!城市之间的邻近关系无法一维表示。为此,您可以:

  • 使用“以用户为中心的方法”:如果地图受众位于某个地方或有特定的重点要关注的地方,则可以将该地点视为起点,并且可以根据所有其他城市到该起点的距离来对其进行排序。
  • 不仅要根据城市的相对距离,还要根据其他相似性标准(人口,洲,每位居民的汽车数量等)对城市进行排序。然后,一些统计处理(例如主成分分析)可以给出城市可以沿其排名的单一维度线。

到目前为止,这里的所有答案都非常有趣且很有启发性。在这个第一个项目符号中,选择一个原点,所有其他项目都是“距原点的距离”,这似乎是最实际的。
马特·威尔基(Matt wilkie)2011年

众所周知,投影到两个维度都是“无法完成的”!顺便说一句,一维投影有大量的应用程序,例如规划行程的带状图。
ub

7
trying to keep cities that are 'close' on the globe 'close' on the line

想象一下三个城市彼此之间的距离相等,例如在等边三角形的顶点处。您如何在线上表示呢?一些信息丢失。

您要么完全放弃一个维度,例如将所有城市投影在平行或子午线上(后者很有趣,因为我们不习惯比较不同国家之间城市的南北相对位置),或者选择一个特定的子午线尺寸度量,例如“距纽约的距离”。

Spacedman建议的Peano曲线非常有趣,可以绘制原始地图,但附近的城市可能会在该曲线上走得很远。


5
...让您的城市更近,您的地球更近...
Thomas

1
+1好评论。但是,这不是一个“一刀切”的命题:您不必投影到一条线或将其缩小到与基点的距离。非线性解决方案是可用的,就像它们用于(通常的)2D投影一样。目的是最小化投影距离和实际距离之间的差异的某种度量。在这方面,Peano曲线将特别差,但是它的变体(适合在构造的早期阶段通过所有期望的点)可以起作用。
Whuber

3

我从未使用过它,但我认为GeoHash可能适用于此。

Geohash提供了诸如任意精度的属性,并具有从代码末尾逐渐删除字符以减小其大小(并逐渐失去精度)的可能性。

由于精度逐渐降低,附近的地点通常(但不总是)呈现相似的前缀。相反,共享前缀越长,两个位置越近。


这些哈希通常通过将球体表面的细分细分编码为单词来起作用,因此固有地是二维的。尚不清楚如何从中提取一维坐标(以任何有意义的方式)。
ub

@whuber因此,如果我有一个城市列表,并通过将其经/纬度传递给geohash.org来为它们生成哈希,然后根据哈希对城市进行排序,那么城市的排序就不能代表一维映射(不管它有多精确)?
Kirk Kuykendall,

1
它完全取决于哈希值。仅仅订购不是一维的,而是订购。另外,您需要一个有意义的数字坐标。如果这也来自散列,那么实际上您具有一维投影,但是它可能具有可怕的属性。投影的全部目的是忽略对于可视化或分析无关紧要的变形,并将其最小化。任何散列在大多数情况下都不可能用作投影。
ub
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.