本文为数盟原创译文,欢迎转载,注明出处“数盟社区”即可
作者:Karim Heredia
这篇博文揭示了如何找到城市相似性的另一种方法。认真阅读之后,你就会明白为什么我会觉得麦迪逊(美国城市)和雷克雅未克(冰岛首都)竟会是两个非常相似的城市了。
Teleport Cities这个应用让你能够对世界上任何一个有趣的城市进行研究,并且你可以使用它所提供的一个复杂而又精细的评分系统来对这些城市进行比较和对比。
举个栗子,当想要研究圣地亚哥(智利首都)时,以下就是你将会在Teleport Cities应用中看到的页面:
圣地亚哥的Teleport评分
每一项评分的都是由数据科学家们经过周详考虑而得出的结论,这些细致全面的评分能够帮助我们对Teleport Cities应用中所包含的134个城市进行排名。而且,这些评分并不是绝对的,而是相对于应用中其他的城市。
那么这个时候问题就来了,我们怎么来比较完全不同的两个城市呢?在Teleport Cities中,我们主要用两种办法解决这个问题。第一,摆在一起,让你逐项对比两个城市。举例说明,如果想要对比圣地亚哥和奥斯陆(挪威首都),就会像这样:
圣地亚哥和奥斯陆的各项对比
另一种方法则是在登录,修改个人设置后对所有城市进行评分和排名。我们能够对每个城市进行评分,并且以排名先后的顺序进行展示。这些就是你眼中能够看到的世界:
Teleport Cities中城市排行榜(部分)
但是,有个小小的问题,就是各项评分总和的对比。如果两个城市的总评分都为75分,就能够表示它们很相似吗?我可以举一个很简单的反例来说明,单纯的一个评分是不足以完整的表现各城市的相似性的。假如我们只对两个项目进行评分:通勤和安全。A城市通勤方面得50分而安全方面的25分,B城市通勤方面得25分而安全方面的50分。总分都是75,但很明显两个城市并不那么相似。根据我所给出的例子,你可以一举一反三到我们实际所有的评分项中来(对所有公共用户,我们提供15个评分项目,注册用户则提供20项)。
相似性的度量
我们很幸运的拥有很多数学计算方法能够预估两个数据集之间的距离。其中最知名的一种方法就是欧式距离(Euclidean Distance)。你很有可能就使用过这种方法,因为它最简单的变形式被用来计算三角形的斜边长度(还记得勾股定理吗?)。
两点间的欧式距离能够在任何维度下进行计算。我们可以将Teleport Cities中每一个评分项目当做一个维度。在公共用户的视角下,我们可以有15个单一维度。公式非常简单:计算任意两个维度的差的平方,然后在每一个项目上重复这一步骤,把所有的结果相加,最后取总和的平方根。
这样仅仅只给出了一个距离,一个表示两个不同城市之间关系的数字:他们之间是近还是远。最重要的是,现在你能够很清楚的看到,在集合中,任意一个城市与其他城市之间的距离,哪个离它最近,哪个最远。
在二维图表测绘距离
人类能够很轻易地在任意平面上表现二维(或者三维,如果能运用一点点想象力)。但是能够理解、领会三个维度以上,对大多数人来说几乎不可能。这意味着,如果我们想要将任意两城市之间的关系可视化,最好是运用二维的表现形式。
其实有多种减少维度的方法(被称为多维尺度变换或者MDS),让我们可以将15个城市的维度用二维的形式来表现。其中我个人最喜欢的,也在长期应用中经受住了时间的考验的方法被称为Sammon’s Mapping。这种方法是1969年由John W. Sammon发明的。
总的来说,这个算法的作用是:首先取一组随机或预设值的二维数据点,然后在所有的数据点(也就是我们的所有城市)上进行迭代处理。每一次这个算法作出处理(,原本十五维的数据集合中数据点之间的距离和二维数据集合中数据点之间的距离的误差就会减少。当条件满足时,算法运算停止,所得到的结果就能够很轻易地在任意平面上表现出来。数轴的X和Y轴在这些图表中并没有什么意义,但是数据点之间的距离却意义非凡。
以下是我们运用该算法将原本134个城市,15维度的数据以二维图表的形式表现出来的结果。你可以将图表放大,在高分辨率下查看。两个在图表中距离很近的城市,在他们各项目的评分中很有可能非常相似,反之亦然。
下面的部分图表是交互性的。你可以通过点击图像左下角的放大镜图标来放大图像,十字图标来移动图像或者小房子图标来重置图像。
将Sammon的测绘方法运用到所有134个城市上
现在,让我们放大图像,用两个图片上距离很近,但是却感觉相差很大的城市作为例子,对结果进行验证:
Sammon测绘图中的麦迪逊与雷克雅末克
如果没错,麦迪逊和雷克雅末克的项目评分应该很相似。我们把Teleport Cities中的对比图拿出来验证一下:
麦迪逊与雷克雅末克的对比
虽然项目评分不尽相同,但是两个城市的高分项目都基本一致。当然,结果不尽相同也很自然,不然Sammon的测绘图会将两个城市放在同一个位置上。但谁能够想到威斯康辛和冰岛竟会有相似的地方呢?
用沃罗诺伊镶嵌法来完善Sammon的测绘图
如上所示,Sammon的测绘图很好的将城市的相似性在二维图像中表现了出来。但是每个城市的得分却很难从图中直接看出来。我尝试将城市的得分用点的大小来表现出来,但是我很确定并没有多少人在意这件事情。
沃罗诺伊图是以George Voronoy的名字来命名的。19世纪末,20世纪初,George Voronoy对该镶嵌法的数学基础部分进行研究。然而,这些图像甚至比他自己的研究更古老,甚至还被笛卡尔在1644年运用过。这种方法的原理就是用多边形(或称为cell)围绕着数据点,然后使用用基于距离的启发式运算。
每一个多边形(cell)的颜色都是根据这个城市的分数来拟定的。红色表示低分而绿色就表示高分。为了跟明显的区分每个cell的不同,评分都经过标准化处理来让绿色代表最高分,而红色代表最低。
结论图的构造和之前的图像是一样的:
Teleport City运用Sammon测绘图和沃罗诺伊图来表现相似度
从上图你可以看出,相似的城市也有明显的分数差异。同样,我们一麦迪逊和雷克雅末克为例,差距是显而易见的。麦迪逊似乎比雷克雅末克略高一筹,但它们俩都比密尔沃基的分数高:
用Sammon测绘图和沃罗诺伊图来表现麦迪逊和雷克雅末克
城市相似性的自定义可视化
上图中的分数都是由Teleport Cities以默认的设置打出的。即使我们经常更新我们的数据,默认分数基本上是稳定不变的。举个栗子来讲,生活成本很高的城市是不会在几天内就能够降低花费的。
但是很有意思的地方在于,当用户根据自己的喜好更改个人设置后,就会得到一个属于自己的个性化的城市评分。任何人都能够通过注册登录个人账户来设置自己的偏好,就像下图这样:
Teleport Cities中个人偏好设置的例子
改变几个偏好的设置,系统所给出的分数就完全按照这个人所设置的偏好来决定了。并且,城市的评分分数也可能因为个人偏好设置的不同而变化。这样的话,所给出的相似性地图就变成真正的个人定制版了。下面,我收集了三个例图,都是由偏好不同的模拟用户通过设置不同的偏好设定而得出的。
偏好设置一(例一):
- 气候:与丹佛(美国城市)相似
- 因特网接入:非常重要
- 文娱:电影院,喜剧俱乐部,音乐会
例一(略)
个人偏好设置二(例二):
- 低犯罪率:非常重要
- 医疗健康:尽可能优质
- 教育:孩子需入学
例二(略)
个人偏好设置三(例三):
- 创业的氛围:非常重要
- 风投的生态圈:比较重要
- 旅游的连通性:中等
- 创业简易:非常重要
- 低企业税:非常重要
- 高速网络:非常重要
例三(略)
注:文中省略了部分交互图片,大家可以点击原文链接http://teleport.org/2016/02/visualizing-city-similarity/查看。