Related Posts Plugin for WordPress, Blogger...

2014/08/27

憤怒的 Big Data ── Data Science 序曲

!!! 8/28註記:似乎昨天在編輯的時候出了點問題,一大段內容不見了,今天重新打了一遍 !!!

###正文開始

自己做的工作基本上跟時下流行的 Data Science 有關,但因為一直是在學術圈裡面打滾,雖然有跟外面業界合作的經驗,大致上處理的問題都比較小且專一,不是很具有共通性;再加上未來想要往 Data Science 業界方向發展(或我喜歡稱之為 Data Analytics 和 Business Analyst),必須要一直吸收各種訊息並且建構自己對於 Data Science 的理解,要不然就跟大家討厭的只出張嘴教授沒什麼兩樣。前些日子一直想要寫一些相關的系列文章來分享我的理解,但是實在太懶,昨天看到一則新聞讓我實在忍不住的想開砲,順便就當做是一個系列分享的序曲


故事大綱主要也是跟現在最火熱的臺北市長選舉有關,受人景仰的柯P發言人潘建志 (Billy Pan) 的言論常被大家轉帖,昨天看到的是這樣:
柯文哲和連勝文今天都公佈公車政見。

連勝文說什麼?基本上等於沒說,他說上任後公車不會漲價,路線也不會變。事實是,大台北公車票價已16年沒變,但政府每年要補助30億!

柯P說什麼?請見柯P新政#16 公車路線大調整
http://kptaipei.tumblr.com/post/95815716799/p-16

柯P這主張是非常基進的(Radical) ,我有點擔心,於是去看了PTT的公車版專業阿宅公車迷的反應,想不到是一片叫好。

柯P第2次提到用大數據 (Big Data) 來優化未來公車路線。以後市政府可能要請些數學系博士來做Data Mining的苦工了。現行台北市的公車路線圖,有建中學生畫了出來,長年不改的306條線,十分驚人:
http://ericyu.org/BusMapTPE/

公車政見連柯PK,結果: ---> 秒殺!

之前有篇文章有提過我是支持柯文哲當選的;確實,昨天連柯二人同時提出了公車意見,連公子的確實是廢話……真的是有講等於沒講,但是看到最後Billy的發言反而更令我感到火大,因為我覺得他根本搞不清楚 Big Data 是什麼就在那邊亂講!


我們需要先知道一件事情,時下火紅的名稱像是 Data Mining (數據挖掘),Data Science (數據科學) 之所以突然間變得那麼炙手可熱,主要還是因為在 Computer Science (資訊科學) 的發展有突破,基本上就是 Machine Learning (機器學習,以下簡稱ML) 這一個分支貢獻最大,也是最主要的推動力量!


關於數據的應用,其實統計學早就有了,實際上統計學跟 ML 有很大一部份重疊,但是它們兩個的核心思想還是很不一樣的,這部分不在這篇文章討論,但如果我們一言以蔽之,就是 ML 的存在可以讓在更少的假設下應用更多數據,自然是比統計能夠拓展到各種應用領域。統計學很好用,但在現今環境下,ML 能應用範圍更廣,再加上 Computer Science (CS) 寫程式做成品的能力遠大於基礎科學家。我認為 Data Mining、Data Science 就是 CS 的延伸,而不是統計學的復興!但不管怎樣,如何運用數據跟模型去對外來做預測是這兩者共通的點,也是 Data Science 被人寄予厚望的原因,不過似乎紅的是「大數據」這個字,這又是怎麼回事呢?



首先我必須要說:我真的超討厭別人一直喊海海海海海海海量數據~


海海海海海海海量數據要能成功,最重要的就是你要先有很大量的數據,這部分的成功故事很多都是來自于 Google、Facebook 這些大的網路公司,理由就是它們抓資料不用錢,很多記錄的動作成本都很低,要知道你在哪個網頁逛多久點了什麼,滑鼠怎麼移動都可以,Data 要多少有多少。但是你想想,如果今天實體店面除了「最後結帳的物品」外,還想要了解你購物的習慣流程,是否對某些項目的商品「猶豫不絕」,這些更多有價值的資料是非常難收集的,要有更多硬體設備去配合才能夠達成,所以怎麼收集數據其實本身是個大問題,不是每個單位都能輕鬆拿到「海量」數據。如果數據量根本不夠大,那喊海量數據是喊爽的嗎?


再來,其實統計學的目的就是在你不知道母群的情況下,透過合理的抽樣方法,以到手的資料 (樣本) 去對母群做預測,所以資料量本來就不用太大。也就是說,在某些情況下,「資料量大不見得會有很大的幫助」。(Luijay 編按:本文的「資料」與「數據」基本上是可以替換的同義詞,原文是 Data,在這裡特別指稱量化的、電腦可以運算處理的 Data)。

這一波很火紅的 Big Data,其實是包含了所謂的 3V:Velocity (產生得很快),Volume (數量很大) 和Variety (種類很多)。符合任何一種就算是 Big Data,實際上目前是以種類多的資料最為有趣,數量大其實不是那麼重要,如果你的資料內容很明確、具體,那透過統計方法就可以分析、回答你的問題,不用很大的資料量也能得到非常好的結果!但是大多數人對於海量資料還是存在一種「大量」的誤解,就像柯P新政裡面講到每天都有記錄你的路線的那種「大數據」,其實是沒有那麼有用的!

基本上目前台灣(應該說全世界都是如此)還不太知道到底能怎麼應用大數據,只能舉出幾個比較可行的方案(像是這些網路公司的成功故事),並且覺得這東西很有前景,並沒有很全面的考慮。只是因為台灣是硬體很強的地方,硬體廠商就開始賣你儲存跟處理資料的設備、服務,要你開始建構你的數據團隊,但是你根本還沒想清楚用什麼數據處理什麼問題
這樣喊大數據到底有何意義?

最後,大家好像覺得有很多 Data 的應用就叫做大數據……但是我開始的時候已經講過,這一波的流行主要在於方法 (ML為主)、應用範圍及程度的不同。如果只是把更大量的數據用傳統的統計學方法來分析,那並沒有任何創新,也未必有那個必要,這其實是沒有掌握到 Data Science 真正的精髓!更甚者就是有些人覺得只要數據量大的應用就是大數據,但如果你的應用方法不是 Data Mining、Machine Learning 或是統計,那跟時下所講的大數據是一點關聯都沒有的,是一種純粹從字面上去理解一個事物的錯誤!


然後你再去看上面柯的團隊在亂講什麼,他們正是犯了這種錯誤!

利用一整年的實際運輸交通使用資料,去規劃公車路線,根本不是什麼需要用 Data Mining 來處理的問題,純粹是一個最佳化 (Optimization) 的問題罷了。更精確地說,是一個多目標最佳化問題 (Multiple Objective Optimization),可以這樣來看:

Given Input : 一年的使用者搭乘情況
Maximize : 多目標函數 (成本最低、路線覆蓋廣、等候時間少、乘客滿意度高……等)
Constraint : 公車總數量有限、最多能賠多少錢、司機人數限制……

這只是在滿足所有條件的情況下,去找出一個最佳的答案而已。當然,這並不是一個很簡單的問題,尤其多目標函數是各種目標的取捨,班次多就是要花錢,不可能又省錢又班次多。但是這種問題,過去就有很多人在做了,跟這波大數據的應用取向真的一點關聯都沒有。更何況,如果民眾的搭乘習慣穩定,那就不需要大數據了 (足夠的數據才是理想的)……

我們或許可以從過去的資料中得到一些結論,並進而利用這些結論去規劃公車路線,但是這基本上跟 Data Science 無關。無論是統計也好,ML也好,在應用上最重要的是「做出預測」,而不是「從現在收集到的東西找到一些有趣的結論」而已,如果今天得出來的結論無法幫助我們做出預測的話,那其實等於沒講~

舉例來說,現在有一家公司「客戶跟他們購買產品」的各種資料,若只是純粹作結論,可能可以得到某樣東西賣出數量最多,或某個客戶購買數量最大、是重要的客人,或幾月到幾月消費人數最多。這些資訊不是完全沒用,但也不能說很有用,因為它們是「對過去的結論」(Luijay編按:在統計上就稱為描述性統計,只是把現有的資訊用各種圖表或統計數字整理起來,沒有解釋及推論的成分)。

對商業甚至是股票投資來說,重要的是如何預測未來。以 Data Mining 的應用來說,至少應該要能做到這件事:如果今天有一個新的客戶來詢問,你能否馬上預測他會買什麼東西,買多少。如果你能做到的話,那你就能在業務端多注意,最大化你的銷售!


再回到公車的例子,要主打 Data Mining 或大數據應用的話,至少要能做到這樣:每班公車都有電子車牌,每天都可以更換,也就是說全台北市的公車配置每天都能更動;然後藉由台北市每天早上六點交通狀況+當天天氣+各種有的沒的資料,預測哪一條路線當天會最多人搭,或者哪條路線有塞車的機會,以此調整分配的公車班次。這點就是傳統的最佳化做不到的,即時的預測才是Data Analytics最迷人的地方!

總而言之,我覺得前面引述的臉書內容是一個很嚴重的誤用……

其中最令人火大的一點就是這句話:
「以後市政府可能要請些數學系博士來做Data Mining的苦工了。」
這是完全的外行!

如果你去 Quora 上面問會得到以下的結論:

1) 博士生完全沒有比較能幹

2) 比起 CS (資訊科學、資工),數學系和大數據的相關度低非常非常多

3) Data Mining是叫電腦跑「苦工」,人在吹冷氣納涼謝謝


我覺得柯的團隊真的該小心一點,不要一直亂放砲講一些不懂的東西,這只會讓人覺得你的團隊沒有能力處理不是你專業 (醫生) 的事情,或是沒有能力招募各領域的專家來幫你處理~