資料科學家的告白:給幼苗們的忠告

By | D4SG, Data Science | No Comments

自從領著 DSP智庫驅動 (dsp.im) 資料科學家的頭銜在業界闖蕩以來,最常被問到兩個題目:1. 如何成為一個資料科學家;2. 組織如何導入資料科學。本文想針對有志於跨入資料科學領域的新血們分享筆者在第一個問題上的看法。

圖片取自:https://goo.gl/X2om6e

 

別說學校教的沒有用,是不夠精通不會用

先自述一下自己的背景,國立大學數學系、統計碩、統計博。如果讀者的背景跟筆者類似,而且欲從事資料科學家相關工作,請相信我一句:「在學校所學到主科知識,全部都用得到。」

數理統計、機率論、線性模型、實驗設計、時間序列、多變量、倖存分析、貝氏分析、無母數曲線、資料探勘、機器學習。上述這些都是學校所教授的必修選修科目,筆者在 DSP智庫驅動 所接觸的各種專案中全都被用上,真心不騙。資料科學有一個可愛的地方,儘管它看似一門新興領域,但資料分析面的必備技能是可以在學校就學到的。

不過,這邊要多一個使用說明,耍耍嘴皮子的三腳貓的功夫是派不上用場的,資料科學很真實,它講求一點一滴的累積。唯有完全通透的融會貫通,才有能力把真實問題翻譯成能夠用資料分析解決的科學問題,進而試圖解決問題 (這還不代表真的能夠找到解決方案喔!)。

工具很重要,R語言是首選

今年 (2016) 正好是筆者寫 R語言的第十年,R語言是一個可塑性高的資料分析武器,更是資料科學的完整解決方案。回想從前在學校學 R 的情境,是在老師教完資料分析理論後的 R語言實作 Lab。基本上,從課堂教材出來的習題,資料都「很乾淨」,讓人可以專注用 R 實作資料分析演算法,並理解各種指標是如何呈現在報表上。

真正能夠讓你邁向神奇 R 語言大師的鍛鍊,在課堂上都被巧秒的略過。實地到現場執行資料分析時,那是隱而未見的地雷區,各種神奇的狀況都會出來。在工程面,有資料前處理 (Data preprocessing) 的問題要面對,沒有實際弄髒手做過資料源的串接、篩選、補值,別說你會資料分析。在分析面,最讓人崩潰的是原本用得很順的資料分析函數,偏偏在這份資料上會突然跳 Error,解這種 Bug 是邁向神奇 R 語言大師之路的必經過程。

別只會拿槍,更要拿戰果

想提升知識與技能,無論是實體或線上現在坊間的資料科學相關課程如雨後春筍選擇多多。在增加實戰經驗的部分,則有許多資料大獎賽或是開放資料黑客松可以參加。

如果想要花一些時間、組一個團隊、做一個有影響力的專案,筆者主持了一個 D4SG資料公益計劃 (d4sg.org, 介紹簡報),其中的資料英雄計畫 (D4SG fellowhip) 是跟 GOV/NGO 徵求能產生顯著的影響力、主管積極支持、成果能確實導入組織運作的資料公益提案,以為期三個月的形式媒合熱血的資料英雄與提案組織共同完成。這不僅能解決公共問題,在履歷上添加這份戰果更讓你的資料力不證自明。

身體力行,當一個資料科學傳教士

我對資料科學家的定義是:「用資料解決真實問題的人」。就筆者在幫助企業進行資料科學導入時的經驗,最難的是讓大家相信資料。真實問題可能是由 A君提出,資料在 B, C, D 手中,執行單位則是 E, F, G。這時候必須肩負起資料科學傳教士的職責,面對不同的群眾要能夠信手捻來用對應的語言來做溝通,用前述的知識與戰果讓大家相信資料的力量。當眾人都相信資料力的時候,才會有資料科學家發揮的舞台。

政府開放資料的下一步,以資料驅動的公共治理

By | D4SG | 2 Comments

開放資料,世界第一之後

台灣的政府開放資料 (open government data) 在以開放為原則,不開放為例外的主張之下,2015年,被英國開放知識基金會評比為世界第一。在以量取勝的策略達到成效之後,如何更進一步在政府內部根植開放文化是追求卓越的首要目標。

政府開放資料之所以重要,除了能促進公民與政府之間的資訊對稱之外,更重要的是能利用開放資料創造社會、經濟和環境的價值。這種以開放資料驅動社會價值的過程,參與對象不僅是政府對公民,還包括政府對企業、媒體、非營利組織,甚至是政府內部不同部門。

目前政府開放資料的活化應用大多偏向「訊息揭露」,譬如台鐵時刻表、即時空氣品質等,藉由網站、手機APP供民眾方便查詢。在世界第一之後,筆者認為追求卓越的政府應該思考如何透過開放資料的分析研究創造公共價值進而驅動政策治理。

沒人做我們做–D4SG資料英雄計畫

DSP智庫驅動是筆者與幾位志同道合的朋友共組的公司,旨在提供企業、政府、非營利組織資料科學解決方案。基於激發資料價值、改善社會的熱情,DSP智庫驅動發起D4SG資料英雄計畫 (Data for Social Good Fellowship),媒合台灣環境資訊協會與資訊、新聞背景的資料英雄,利用兩個月的時間,結合行政院環境保護署農委會農業試驗所的開放資料,進行D4SG守護農地計畫,完成一個農地重金屬污染與列管分析專案。

筆者以專業顧問的身份參與D4SG守護農地計畫,幫助環境資訊協會利用數據作倡議,將所關注的農地安全問題佐以政府開放資料,轉譯成可執行的資料分析專案。這份專案報告試圖透過農試所(81年至97年的農地土壤採樣調查資料,共13萬筆表土資料)與環保署(91年至今的管制農地資料)兩個不同政府部門的資料套疊,利用資料科學方法做「快篩」,從那些農試所驗得土壤重金屬超標,但目前環保署仍未管制到的真空地帶找出超標熱區。期盼相關單位能真正地為農地做「診斷」,查證其重金屬污染狀況。

重金屬農地污染分析

以資料科學方法對未列管農地做「快篩」。右圖顯示桃園機場左側多個埤塘附近同時有重金屬超標採樣點 (黃色:農試所資料) 以及農地列管區塊 (環保署資料,紅色:列管中;橘色:解除列管)。然而在桃機右側的南崁溪周邊雖有列管農地,但僅小面積,可能還有很多沒有被列管到。

D4SG守護農地計畫的價值有三:

一直以來,政府的組織架構都是以業務職責區分,在任務分配上便於垂直分工,但缺點是跨部會的資訊流通或是業務合作,受限於法規與責任歸屬上而出現橫向斷層。由環團與資料英雄合作的D4SG守護農地計畫,以跨部會的政府開放資料為基礎,提出以資料科學輔以政策治理的農地重金屬污染快篩模型,不僅促使兩份資料所屬當局的即刻回應,更提供了跨部會溝通與合作的契機。

>> 延伸閱讀

消滅饑餓與貧窮的資料科學

By | D4SG, Data Science | No Comments

英國致力於消滅飢餓與貧窮的慈善機構 Trussell Trust ,整合超過 420 家食物銀行建立合作網路,藉由資料科學方法,將食物募集站與社會福利數據進行交叉分析找出糧食募集與發放的真空地帶。

食物銀行是一群慈善組織,以提供未能解決「三餐」基本需要的人士家庭緊急及短暫的膳食援助為目的。把即期食物捐贈出來,從食物的募集、分類到配送,讓資源獲得最有效的分配與使用。

在英國致力於發放緊急救濟食品的慈善機構 Trussell Trust 說到:「依賴緊急救濟食品度日的人士家庭不斷創下紀錄,光是去年就發放了近百萬份的基本口糧。」這間整合420間食物銀行的慈善機構更進一步指出,貧窮與飢餓的規模不僅不會減少,反將越演越烈。(Link)

藉由資料科學,從食物募集站與社會福利數據的交叉分析有望找出食物銀行營運的真空地帶。由赫爾大學、Coppelia、AAM Associates 等組織所組成的資料科學團隊,透過英國2011年的食物銀行普查資料,預測出急需食物銀行援助的區域。

由英國的食物銀行及資料科學團隊所開發的食物募集與需求地圖,圖片來源:Youtube

關於資料科學在食物銀行上的應用,美國也有類似的案例。知名資料分析公司 APT 協助華盛頓特區食物銀行 (Capital Area Food Bank, CAFB) 建構飢餓熱點地圖,從各個區域的資料挖掘出食物募集與需求的缺口。(Link)

由美國的食物銀行及資料科學團隊所開發的飢餓熱點地圖,圖片來源:CAFB

台灣也有食物銀行,多年來以協助不勝枚舉的弱勢人士與家庭。可惜的是,還沒有看到與運用資料科學優化營運的具體案例。有沒有機會製作一張屬於台灣的食物供需地圖,挖掘出迫切需要援助的弱勢家庭?

這是非常有可能的!透過政府開放資料擷取出全台灣的社會救助資料以及食物銀行的募集與發放場站資料,食物供需地圖的基本雛型就出來了。更進一步,利用空間統計方法建構預測模型,可以找出潛在的高風險區,輔助食物發放站點的設置。

這種資料科學所驅動的公益合作方式蔚為浪潮,由開拓基金會、教育部 ITSA、智庫驅動等組織所發起的 D4SG 計畫 (Data for Social Good, http://d4sg.org) 正是一經典案例。目前已經協助超過40 個非營利組織、20 個政府機關親身體驗資料價值,讓想像力起飛。在資料氾濫的大數據時代,由資料所驅動的革命即將引爆,未來政府、企業、非營利組織與資料科學團隊的合作模式,將成為不可或缺的要素。

今年七月,D4SG 媒合公益組織與資料團隊以長期專案解決真實問題的資料英雄計畫即將展開,目前正在招募資料英雄與公益組織的提案,關心用資料做公益的朋友,不妨多多關注 D4SG 計畫 (http://d4sg.org)

更完整的評論內容,請見五月份的《有物報告》。

資料力做公益:用白板跟鍵盤回饋社會

By | Data Science | One Comment

有人用勞力做公益,也有人用財力做公益,如果用資料力來做公益,不知道會擦出怎樣的火花?

身為一個資料玩家,Data for Social Good 的概念一直是我覺得有興趣、有義務來做的東西。在 DSP智庫驅動 的夥伴共同努力之下,今年十月正式發起 Data for Social Good (D4SG) 計畫 (D4SG臉書社團),透過多場實體活動 ([1], [2], [3]) 匯集了好幾間已經有資料,也想要透過資料科學解決真實問題的非營利組織。這些組織的服務對象包含:兒童、老人、身障、環境、教育等等項目。透過與開拓文教基金會合辦「公益加值資料工作坊」的活動,在11/28, 29 週末兩天的時間,來了場 NPO 與資料人的大亂鬥。

以下筆者將以資料人的身份來談談「公益加值資料工作坊」的觀察。

台灣環境資訊協會的淑貞姊的合作是很有趣的經驗,她讓我有機會做了一場「資料科學口譯」。淑貞姊想要透過環保署調查的土地污染數據評量個縣市政府的整治速度,一邊聽她講想法,就一邊將它翻譯成數學模型,定義出簡單直覺的指標,規劃一套嚴謹的資料分析流程。同組善於處理地理圖資的尼斯,就能夠根據統計指標計算出各縣市政府的表現,做出視覺化呈現以及名次排序。

來自瑞信兒童醫療基金會的致緯兄提出的問題真的很特別。以往的企業顧問案接觸的大多是在談怎麼從數據中找出開源節流的方法。但是,瑞信關心的卻是怎麼付出更多的錢,給更多的病童。進行這個專案,就好比做偵探一般,盡一切可能找出病童申請醫療補助人數下降的原因。進行「探索性資料分析」的過程令人印象深刻,大家七嘴八舌的猜測補助人數下降的影響因子,有經驗資料人則試圖把大家的「意見」翻譯成「量化的變數」,以探求補助人數與各種因子之間的關聯性,進而破解謎團。

還有很多引人注目的專案,譬如地球公民基金會期待【水污染監測地圖(以後勁溪為例)】、雙連視障關懷基金會探求【視障按摩師的就業公平機會】、生命線關懷總會想要知道【從1986年開始,求助個案有什麼樣的變化】、台中甘霖基金會關心【失智長者生理數據與長青課程的關係】、企業永續發展協會想要了解【台灣企業對碳揭露議題的表現】。

關於D4SG計畫,先別說回饋社會這麼崇高的話語。對資料人而言,這是一場練功打怪、提升自我價值的好機會,這種場合你可以從 NPO 那裡得到最真實問題跟真誠的回饋,又可以跟眾多深藏不露的高手合作,整個讓人熱血沸騰啊!

資料科學的 Danger Zone

By | Data Science | No Comments

大數據帶來「偽相關」

第二屆資料科學愛好者年會,1300人參與的大拜拜圓滿結束,九月初參加了年會系列活動 資料科學團隊培訓及導入經驗分享會 (我跟Wush有很認真做筆記喔),對於一張關聯圖印象深刻,上吊自殺 vs. 科研經費的相關係數竟高達0.9979 (台大心理的黃從仁老師也有在年會演講中秀出這張圖!),這種八竿子打不著的關聯性,其實不是巧合,而是 Big Data 時代下必然的產物。

現今的大數據世代有個明顯特徵,就是資料氾濫,我們可以很容易地收集到許多不同來源的資料。這張圖就是透過美國數十萬筆開放資料進行一一比對所找出來的特例 (可以到 trievigen.com 找到更多例子)。要說的是,僅僅利用 Data mining 辦法找出資料欄位間的相關性,來作為組織的決策是很危險的。

correlation

「上吊自殺 vs. 科研經費」 (相關係數 = 0.9979)

 

資料科學的 danger zone

Drew Conway 所提出來的 Data Science Venn Diagram 應該是目前在介紹資料科學時,最多人引用的一張圖 (可以數數看這張圖在2014資料科學愛好者年會的演講中出現幾次),其中值得注意的是Hacking Skills 與 Substantive Expertise 的交集為 Danger Zone。白話的說法是「會跑 Data Mining,不表示能下正確決策」。

 


danger-zone

圖解資料科學,紅色部分為資料科學的danger zone

 

舉一個例子,利用 R 語言隨機生成 10 萬組 1999 – 2009 年的亂數資料,拿這 10 萬組資料和自殺數據去計算相關係數。這 10 萬個相關係數平均值為 0,有 9 萬個相關係數介於 [-0.5, 0.5],其中有 8 個相關係數高於 0.90,只有一組也的相關係數高於0.95 (想知道模擬怎麼做,可以參考筆者的R code),如下圖所示:

 

linechart

「上吊自殺 vs. 模擬數據」 (從10萬筆亂數資料中取出相關性最高者,相關係數 = 0.9618)

 

也就是說,透過不斷地產生亂數資料,大約每 10 萬次就可以找到一組和上吊自殺資料有強烈相關的模擬資料。即便你手上的數據和上吊自殺的數據完全無關,只要資料來源夠多,你就會有很高的機率找到強烈相關,這種現象在大數據時代將會頻繁的發生。這種相關性,稱 偽相關 (spurious correlations),是經典的資料科學Danger Zone,它可以大幅改善預測模型的精準度 (強相關可以做精準預測),但卻完全無法幫助企業進行決策,反而有可能會幫倒忙。

只有成功,才會成為案例

偽相關 跟著名的「啤酒與尿布」、「颶風與草莓夾心酥」有什麼不一樣?從技術的觀點來說,他們是一樣的,他們都是透過 Data Mining 從巨量資料中,比對兩兩資料欄位所找出來的強烈相關。但是啤酒與尿布成為人人傳頌的案例,自殺與科研經費卻只會被當作笑話看。透過筆者的模擬示範,可以預期數據來源越多,發現強烈偽相關的頻率越高。

部份教科書寫到這邊通常會再次強調「相關不等於因果,多想兩分鐘,別看到相關就開槍」,然後就到此為止,謝謝大家。究竟該怎麼驗證 Data Mining 到的相關性是否能作為商業策略的因果關係?辦法是有的,而且只需要上過一個學期的統計課就會的東西,給一個關鍵字 AB Test

筆者即將要在 DSP 開課 (模型思考團訓班) 的主題就是講AB Test,有興趣可以來聽聽喔!

工商服務:筆者參與規劃的資料科學課程 XD

 

資料科學教育:啟動新世代的數據力量

By | Data Science | No Comments

台灣史上第一次的資料科學政府團訓班,由DSP 智庫驅動、國家發展委員會及開拓文教基金會聯合主辦,在班主任 行政院張善政副院長的帶領下,橫跨20個中央部會共36名成員體驗了一場用資料論政策的工作坊 (2015 8/6, 7, 13, 14)。欲知詳情,請參考DSP網站上的精彩回顧

這場活化政府的資料思維活動之前,今年七月 DSP 智庫驅動與政治大學-ITSA社群運算與巨量資料跨校資源中心在政大替大專碩博生打造了一場資料科學夏令營 (2015 6/30, 7/1, 2, 3)[1, 2]。學生來自全台12所大學將近20種不同系所,包含資訊科學、統計學、商學、傳播學、社會學及其他領域,是一場貨真價實的跨領域工作坊。

《公共政策與治理 – 資料思考工作坊》專案實作一隅

《公共政策與治理 – 資料思考工作坊》專案實作一隅

身為工作坊規劃者之一,分享一點活動設計的理念,供有意從事資料科學推廣教育的朋友做參考。以學生為主的夏令營,設計主軸環繞在完整的資料科學流程 (Data Science Process),從資料思考 (Data thinking) 開始,藉由資料盤點、資料剖析 (Data understanding) 來提出問題,進而規劃出具有數據論證基礎的資料科學應用 (Data product)。對於欲將資料科學血液注入政府架構的各部會菁英們,更加強資料科學導入的策略指導 (Data strategy) 以及政府資料、開放資料 (Open data) 的真實應用案例分享。

由於資料分析是一系列的串聯流程,需要不同領域的專家通力合作。我們設計了小組專案活動,將學員依跨部會、跨科系、跨領域、跨專業的方式進行分組,協同合作完成一場微型資料科學專案。安排的講者除了分享資料科學相關知識以及真實案例之外,還得身兼小組專案指導員,提供建議與技術的協助。

魔鬼總是藏在細節裡,真的走過幾遭才能體會當中的艱辛。近來資料科學的教育訓練嚴然是政府、企業、NGO、NPO 欲導入以數據輔佐決策的重要模式。今年9/2 (三) 由國立政治大學、淡江大學與DSP 智庫驅動聯合主辦了一場《資料科學教學經驗分享會》,這場活動邀請各方從事資料科學教育的老師一同分享課程設計、教學方法、補助工具等等的經驗談,也邀請到實際參與課程的學生分享他們的學習歷程,歡迎有意從事相關領域教學或研究的大專教師以及同好共襄盛舉。

Big data 的三種資料分析類型

By | Big data | No Comments

Big data已經熱一陣子了,市面上許多企業紛紛提出各種Big data solutions,究竟這些solutions到底是在解決什麼樣的問題?筆者將近期對於 Big data的觀察心得做一點整理,分享給大家。就資料分析的觀點,筆者認為現今 Big data 面對的問題可以分成三種類型:

 

Type A. Big data 問題跟 Small data 是一樣的

無論資料量級的大小,資料分析重視如何展現資料的特徵。展示特徵的方法首要是對資料進行適當的疏理 (subsetting / summarise),整理出能夠進行資料建模 (modeling) 資料表、具代表意義的指標,或是資料視覺化圖表。儘管資料的問題本質一樣,但是在Big data上,需要分散式資料庫 (distributed database) 上的資料處理工具諸如Hive, impala, teradata …等才能實現。如果想要在R語言的環境下,執行量級較大 (GB層級) 的資料疏理 (Data ETL),可以參考dplyr, data.table, sparkR等套件。

Type B.  Big data 問題等同一大群 Small data 的問題

對於Big data進行分析的資料模型,可以由若干Small data models所組成的元件來表示。在這種情況下,分散式運算 (distributed computing) 是為必要技術。如果想要在R語言的環境下執行平行運算,可以參考pbdMPI, snow, foreach, Rth等套件。

Type C. Big data 問題需要靠特製系統解決

當資料分析模型無法透過分散式運算有效解決計算效率問題,需要經常性/即時性分析整包Big data的問題屬於此類。這需要根據整體資料分析的流程特製化設計解決方案,譬如說推薦系統。如果想在R環境下嘗試輕量資料可以運行的推薦系統演算法,可以參考recommenderlab套件。

這三種資料分析類型,其要求的 Big data 理論、技術、工具不盡相同。如果您是正在尋求所謂Big data solution的企業,筆者建議先檢驗您的資料量級是不是 Big data,接著再思考您面對的資料分析問題是哪一種類型,進而尋求解決方案。

日前一篇對知名資料科學家工具開發專家Hadley Wickham採訪報導中,提到一個有趣的數字,90%的Big data問題屬於Type A,9%的問題屬於Type B,其餘的部分則屬於Type C。姑且不論這數字的精確性,從Data life cycle的觀點,抑或從企業的資料成熟度來看,不妨依循 A -> B -> C 的流程,一步一步尋求解決方案囉。

台北市長負面競選效益分析

By | Data Science | No Comments

為了響應李慕約發起的 「五十天五十個選舉圖表」,我認領了若干張圖表,我的第一張圖就是關於負面競選。

台灣的選舉過程中負面選舉總是媒體主要追逐的焦點,透過社群媒體發布的候選人負面內容以及民調支持度進行台北市長選戰關聯性分析,發現負面消息對於柯文哲與連勝文兩位候選人的支持度有截然不同的影響。約莫選前60-70天 (9/16 – 9/30) 左右,社群媒體上無論是反對連勝文或是反對柯文哲的內容對於兩位候選人的民調支持度影響不大 (不到1個百分點)。近期 (10/1 – 10/16) 而言,負面競選對支持度就有明顯的影響。反對連勝文的內容在社群媒體散發的越多,連勝文的民調支持度越低,此外柯文哲的支持度也會隨之下降,推測批連會使得未決定支持者的游離選民不願意投票有關。當反對柯文哲的言論散發越多時,連柯兩人的支持度都會隨之上升,推測批柯會使得雙方隱性的支持者願意浮上檯面有關。

本次分析的資料來源分為民意調查資料以及臉書使用者資料兩部分。民調資料取自於維基百科,利用LOESS法預測9/16-10/16每一天候選人的民調支持度。臉書資料則是透過林克傳說收集百萬使用者的公開資料,得到支持/反對候選人內容的社群覆蓋率 (即支持/反對內容出現在一個人的塗鴉牆之平均機率)。

原始資料、分析程式、分析結果都公布在我的github上。

台北市長負面競選效益分析

 

資料科學 in 白色巨塔

By | Data Science, Health Care | No Comments

身為一位統計背景的資料科學愛好者,能夠應用所學來回饋社會是多麼興奮的事。日前到高雄參與 Code for Healthcare ─ 以醫療為主題的跨領域 hackathon,正是貢獻所學的機會。這樣的場合參與成員至少包含:高雄氣爆的受災戶、第一線的救災、醫護人員、醫事、醫務管理人員、資料科學家、系統工程師、設計師。

cfh 簡報似顏繪 made by Cloudie

CfH 簡報似顏繪 made by Cloudie

資料科學是一門實實在在的入世學問,理論與技術專精的資料科學家能夠與第一線的 domain experts 進行團隊合作才能完全發揮該學門的精神。前線人員提出他們面臨的真實問題,透過跨領域團隊合作才能夠提出確實的建議。譬如在這兩天的時間中,我所參與的兩個團隊分別提出:

  1. 高高屏地區緊急醫療能量的初步估計模型;
  2. 利用醫務管理平台的數據提出改善現有流程的建議。

已故劇團國寶李國修先生曾提到:「一輩子做好一件事,就功德圓滿」。透過跨領域的交流,讓不同領域的專家能協力合作,如此一來,成就的豈止一件好事?