作者:Karim Heredia

這篇博文揭示瞭如何找到城市相似性的另一種方法。認真閱讀之後,你就會明白為什麼我會覺得麥迪遜(美國城市)和雷克雅未克(冰島首都)竟會是兩個非常相似的城市了。

1457016979-2838-ntro-sammon-voronoi-1024x673

Teleport Cities這個應用讓你能夠對世界上任何一個有趣的城市進行研究,並且你可以使用它所提供的一個複雜而又精細的評分系統來對這些城市進行比較和對比。

舉個例子,當想要研究聖地亞哥(智利首都)時,以下就是你將會在Teleport Cities應用中看到的頁面:

1457016981-2636-Shot-2016-02-23-at-01.01.04

聖地亞哥的Teleport評分

 

每一項評分的都是由資料科學家們經過周詳考慮而得出的結論,這些細緻全面的評分能夠幫助我們對Teleport Cities應用中所包含的134個城市進行排名。而且,這些評分並不是絕對的,而是相對於應用中其他的城市。

那麼這個時候問題就來了,我們怎麼來比較完全不同的兩個城市呢?在Teleport Cities中,我們主要用兩種辦法解決這個問題。第一,擺在一起,讓你逐項對比兩個城市。舉例說明,如果想要對比聖地亞哥和奧斯陸(挪威首都),就會像這樣:

1457016981-2212-6-02-24-at-15.44.38-1024x403

聖地亞哥和奧斯陸的各項對比

另一種方法則是在登入,修改個人設定後對所有城市進行評分和排名。我們能夠對每個城市進行評分,並且以排名先後的順序進行展示。這些就是你眼中能夠看到的世界:

1457016979-5911-16-02-24-at-15.07.44-288x300

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維度的資料以二維圖表的形式表現出來的結果。你可以將圖表放大,在高解析度下檢視。兩個在圖表中距離很近的城市,在他們各專案的評分中很有可能非常相似,反之亦然。

                                                                       

下面的部分圖表是互動性的。你可以通過點選影像左下角的放大鏡圖示來放大影像,十字圖示來移動影像或者小房子圖示來重置影像。

                                                                    

1457016977-9801-1E688AAE59BBE-20160302145712

將Sammon的測繪方法運用到所有134個城市上 

現在,讓我們放大影像,用兩個圖片上距離很近,但是卻感覺相差很大的城市作為例子,對結果進行驗證:

Sammon測繪圖中的麥迪遜與雷克雅末克

1457016979-3312-Shot-2016-02-23-at-19.01.38

如果沒錯,麥迪遜和雷克雅末克的專案評分應該很相似。我們把Teleport Cities中的對比圖拿出來驗證一下:

1457016981-9657-6-02-23-at-01.59.19-1024x369

麥迪遜與雷克雅末克的對比

雖然專案評分不盡相同,但是兩個城市的高分專案都基本一致。當然,結果不盡相同也很自然,不然Sammon的測繪圖會將兩個城市放在同一個位置上。但誰能夠想到威斯康辛和冰島竟會有相似的地方呢?

用沃羅諾伊鑲嵌法來完善Sammon的測繪圖

如上所示,Sammon的測繪圖很好的將城市的相似性在二維影像中表現了出來。但是每個城市的得分卻很難從圖中直接看出來。我嘗試將城市的得分用點的大小來表現出來,但是我很確定並沒有多少人在意這件事情。

沃羅諾伊圖是以George Voronoy的名字來命名的。19世紀末,20世紀初,George Voronoy對該鑲嵌法的數學基礎部分進行研究。然而,這些影像甚至比他自己的研究更古老,甚至還被笛卡爾在1644年運用過。這種方法的原理就是用多邊形(或稱為cell)圍繞著資料點,然後使用用基於距離的啟發式運算。

每一個多邊形(cell)的顏色都是根據這個城市的分數來擬定的。紅色表示低分而綠色就表示高分。為了跟明顯的區分每個cell的不同,評分都經過標準化處理來讓綠色代表最高分,而紅色代表最低。

結論圖的構造和之前的影像是一樣的:

1457016980-3733-QQE688AAE59BBE20160302145934

Teleport City運用Sammon測繪圖和沃羅諾伊圖來表現相似度

從上圖你可以看出,相似的城市也有明顯的分數差異。同樣,我們一麥迪遜和雷克雅末克為例,差距是顯而易見的。麥迪遜似乎比雷克雅末克略高一籌,但它們倆都比密爾沃基的分數高:

1457016981-6940-Shot-2016-02-23-at-19.02.39

用Sammon測繪圖和沃羅諾伊圖來表現麥迪遜和雷克雅末克

 

 

城市相似性的自定義視覺化

 

上圖中的分數都是由Teleport Cities以預設的設定打出的。即使我們經常更新我們的資料,預設分數基本上是穩定不變的。舉個例子來講,生活成本很高的城市是不會在幾天內就能夠降低花費的。

但是很有意思的地方在於,當使用者根據自己的喜好更改個人設定後,就會得到一個屬於自己的個性化的城市評分。任何人都能夠通過註冊登入個人賬戶來設定自己的偏好,就像下圖這樣:

1457016983-1310-6-02-24-at-16.14.10-1024x558

Teleport Cities中個人偏好設定的例子

改變幾個偏好的設定,系統所給出的分數就完全按照這個人所設定的偏好來決定了。並且,城市的評分分數也可能因為個人偏好設定的不同而變化。這樣的話,所給出的相似性地圖就變成真正的個人定製版了。下面,我收集了三個例圖,都是由偏好不同的模擬使用者通過設定不同的偏好設定而得出的。

偏好設定一(例一):

  • 氣候:與丹佛(美國城市)相似
  • 因特網接入:非常重要
  • 文娛:電影院,喜劇俱樂部,音樂會

例一(略)

個人偏好設定二(例二):

  • 低犯罪率:非常重要
  • 醫療健康:儘可能優質
  • 教育:孩子需入學

例二(略)

個人偏好設定三(例三):

  • 創業的氛圍:非常重要
  • 風投的生態圈:比較重要
  • 旅遊的連通性:中等
  • 創業簡易:非常重要
  • 低企業稅:非常重要
  • 高速網路:非常重要

例三(略)

注:文中省略了部分互動圖片,大家可以點選原文連結http://teleport.org/2016/02/visualizing-city-similarity/檢視。

來自:數盟社群