2015年7月29日 星期三

50個資料科學工具速查表(R、Python、Hadoop、Spark、Machine learning)

以下為國外整理的資料科學工具速查表,包含常見的工具R、Python、Hadoop、Spark,以及機器學習(Machine Learning)理論。


  1. R
  2. Python
  3. SQL
  4. Hadoop
  5. Spark
  6. Machine learning

2015年5月7日 星期四

2015年台灣巨量資料(大數據)、資料科學家相關課程

今年又開始看到許多巨量資料、資料科學家的相關課程持續出現,因此筆者整理一下,條列如下,方便大家去規劃自己的學習時間:


工研院
  1. 巨量資料分析應用與實作班(2015/05/13)
  2. 文字資料探勘與網路資料分析實作(2015/06/02)
  3. 資料探勘與R軟體應用實務II(2015/06/16)

資策會
  1. 文字資料探勘實作班(2015/5/16、5/17)
  2. R軟體與財金資料分析(2015/5/23、5/24)
  3. Spark巨量資料分析實務班(2015/5/30、5/31)
  4. 巨量資料分析-使用RHadoop (2015/6/6、6/7)
  5. Python資料探勘實作 (2015/6/13、6/14)
  6. R軟體與資料視覺化(2015/ 6/27~6/28)
  7. Big Data之處理與分析實務班(2015/7/4~7/5)
  8. R軟體實作班(2015/7/11~7/12)
  9. R軟體與資料探勘(2015/7/25~7/26)
  10. Elasticsearch分散式系統實務班 (2015/8/1、8/2)
  11. R軟體與網頁資料擷取應用(2015/8/22、8/23)
  12. Big Data之處理與分析(Hadoop)進階班(2015/10/17~10/18)
知意圖(Etu)
  1. 軟體開發者的 Hadoop 第一天 (2015/05/18)
  2. 資料分析者的 RHadoop 第一天 (2015/05/29)
  3. 軟體開發者前進 Pig (2015/06/05)
  4. 軟體開發者前進 Hive (2015/06/09)
  5. 軟體開發者前進 NoSQL-HBase (2015/06/25)
智庫驅動DSP
  1. A2: 資料分析進階班 (2015/5/23、24、30、31)
  2. E1: 資料工程基礎班(2015/7/4、5、11、12)
  3. 資料爬理析 Python 實戰班(2015/8/1、2、8、9)
  4. E1: 資料工程基礎班 (2015/11/14、15、21、22)
  5. 模型思考團訓班 Analytical thinking team training (2015/10/24, 25)
  6. 資料工程團訓班 Data Engineer training program (E1) (2015/11/14152122)
  7. 資料思考團訓班 Data thinking team training (2015/12/561213)
巨匠電腦
  1. Big Data實務分析與應用(持續開設中)
臺灣資料科學與商業應用協會

MIC產業顧問學院
  1. SAS教育訓練
Agilearning.IO

2015年4月20日 星期一

情緒分析(Sentiment Analysis)的作法與商業價值




情緒分析(Sentiment Analysis)是繼文字探勘(Text Mining)之後,近年被熱烈討論的議題。過去學者普遍探討的是如何把一句話非結構化轉結構化的方法,像是各式演算方法,包含監督式學習(Supervised learning)、半監督式學習(Semi-supervised learning)、非監督式學習(Unsupervised learning)方法都有大量討論,各種文字探勘工具也應運而生,現在透過R、Python也都能很快做到這些事情。

我們隨著學者的腳步,可以發現隨著時代演進,解析文字的科技發展,在20年間有很快速的變動。從最早的網頁資料探勘(Web Data Mining)、文字探勘(Text Mining),慢慢的演進到近10年討論的情緒探勘(Sentiment Analysis)與意見探勘(Opinion Mining),再到這2年的情緒分析系統(Sentiment Analysis System)這樣的議題,都是為了要解決我們大量文字的閱讀需求,因為人類每一天不斷產生文字與內容已經超乎我們想像。

要如何從大量文字裡面掏金,有幾個步驟非常重要,筆者整理如下:

  1. 選定目標
  2. 爬文解析
  3. 斷字斷句(非結構化轉結構化)
  4. 情緒分析
  5. 資料視覺化

粗略上面的步驟,都有個別的議題需要討論。從1、2、3、5步驟都有現成工具可以使用,最難的反而是第4的步驟「情緒分析」。

針對「情緒分析」筆者在有限的時間下,整理這10年大部分學者所做的幾個方法
,供有興趣的朋友參考:
  1. 基於文件為基礎的情緒分類(Document-based sentiment classification)
  2. 以主觀的概念做情緒分析(Subjectivity and sentiment classification)
  3. 以外觀(屬性)為基礎的情緒分析(Aspect‐based sentiment analysis)
  4. 建立情緒字彙的情緒分析(Lexicon‐based sentiment analysis)
還有其他關於情緒分析有趣的議題,包含從2005年開始有學者針對線上評論的評等預測(Review rating prediction)、2006年有學者開始研究意見比較(Comparative opinions)、以及2007年開始有學者研究意見垃圾偵測(Opinion spam detection)等。

這些方法的重點都是要嘗試從大量的文字中,辨識出正面與負面等情緒,好讓這些結果產生出商業價值,但事實上還是有許多問題需要被解決,包含像是特殊的嘲諷句子,如:「這手機很棒,我從來都無法開機。」以及像是中文文法、日文文法等等問題,因此做的精準做得好,還需要投入大量的資源與成本,更重要的是要跨領域,包含找中文系、英文系等熟稔語言的專家,加入一些修辭學的概念等等,甚至是筆者同事建議的語音、圖像辨識專家,因為在大數據的時代講究的是跨領域的整合,單從文字上解析的變數還不夠,還需要更多元的資料,才能做得更好。

綜觀來說,情緒分析的商業價值,除了可以提早了解顧客對於產品或公司的觀感,進而調整營運策略方向。在產品銷售的途中,也可以捕捉顧客對於產品的體驗。筆者也曾使用類似的方法協助某企業了解他們顧客對於產品的評價狀況。筆者同事也曾上述方法進行服貿事件的文字解析。不管在銷售前、銷售後,企業在了解市場的方法上,除了問卷,透過情緒分析我們有值得參考的新選擇。


參考資料:





2015年3月3日 星期二

用大數據看2015年春運:百度遷徙

新年到!!新年好!!

還記得筆者去年整理的大數據春運主題「用巨量資料看春運:百度遷徙」,很快的又過了一年,這次的春運資料視覺化做的更棒更好了。

筆者去年有提到,百度遷徙是百度透過適地性服務 (Location Based Services簡稱LBS)技術,取得網民的移動資料,並整合百度地圖,做了資料視覺呈現。今年百度已經把LBS這個服務商品化,並且命名為「百度慧眼」,提供顧客行為收集與觀察。另外在基礎設施的部分,也改用了百度開放平台來做支持,讓整體的軟體效果處理更為順暢。從這樣一年的改變與觀察,我們可以發現大數據並不是一步到位,而是需要日經月累的耕耘。

我們一樣從介面設計來觀察,從最基本的時間來看,去年的時間選擇從小小的方格,變成了時間軸的概念,把時間具體做了切割,讓使用者更能直覺的選擇時間(如紅框)。


下圖中在選擇城市的地方,雖然沒做太多變動,但運輸往返的顯示效果做的更細緻了,值得一提的是數據更為精確了。


從下圖往返的數據上可以觀察到,除夕夜晚上從對岸到臺灣的人,以上海、廣州的人最多。
有趣的地方是,在時間軸上有提供折線圖,提供查詢每一天在到臺灣的人數變化。


除了豐富的遷移資訊之外,這次百度遷徙還提供了即時航班、機場熱度、車站熱度。

即時航班如下圖呈現,可以看到小型正在移動的飛機,以及該班機的細部資訊。

機場熱度的部分,則是如下圖呈現,以黃色小圓點作為機場,跳動的圓點作為熱門的機場。

如下圖所示,車站熱度與機場熱度類似,只是車站較多,黃色小圓點又更細了,跳動的圓點一樣作為熱門的車站。


最後值得一提的是,去年筆者提的建議,大部分都已經解決,尤其在手機與平板的處理上,這次系統做的更精緻了,只能說真的非常有效率。

筆者一樣做個小結論,百度遷徙的應用商業價值在於透明,透過大數據把交通資料透明化,讓兩岸商業有更多交集,像是筆者去年提的這幾點
  • 兩岸旅遊業可透過這張圖了解市場,像是較具發展潛力的旅遊省份。
  • 兩岸運輸業透過這張圖了解運輸動脈,像是台灣過年間較愛飛的省份。
  • 可觀察到兩岸交流較為熱絡的城市,甚至是對岸在省份間較為熱絡的城市。
  • 商人也可以觀察哪個城市交流最為活絡。
  • 更多......
都是值得參考的。






2015年2月18日 星期三

必學的10個R套件

最近非常的忙碌,終於逮到一個機會在除夕夜前,將幾個月前想要寫的文章整理一番。

圖:R de jeu


R軟體已在這兩年如黑馬般,串升到十大必學語言之一。從各種數據可以觀察到,由於R的開發者專注做資料分析這塊,因此資料分析的資源非常豐富,也奠定R這個工具在處理資料的獨特定位。

不過R的套件(Package)或稱R包,其實非常的豐富,目前已經有6,328 (2015/02/18)個套件,一定會有人想知道,到底哪些套件使用頻率最多,且被推薦使用。
所以筆者收集了不同的排名報告,包含Data CampyhatR-statistics blogRevolutions,整理了您不能不學的10個R套件。

整理如下:

這個套件是玩R繪圖必須知道的套件,
擁有非常強大的繪圖功能。早些年ggplot2與lattice同為高級繪圖套件,不過看來ggplot2略勝一籌。

這個套件可以將vector、list、data.frame的資料做快速的切割、應用、組合,是非常好用的套件,像是join功能,可以做inner、left、right、full等join功能。
plyr可以讓工程師以資料庫的概念,有效率的把玩資料。

這個套件跟plyr類似,但是針對data.frame、data.table、以及多種資料庫為基礎的資料。將資料做快速的切割、應用、組合,尤其處理大量資料,dplyr是非常好用的工具。 


這個套件可以幫助我們將資料進行縱向、橫向轉換,筆者發現對於該套件處理連續型或時間資料是非常好用的,如空氣品質資料、證券行情資料等。通常會再搭配dplyr,讓資料分析事半功倍。

這個套件更不用多說了,它可以讓R跟C++做完美的融合,演算法玩深一點的朋友就會發現,這個套件是調整效能的最佳工具。

該套件對於資工領域的人應該不陌生,digest可以用來處理雜湊函式(hash function),對岸譯為哈希表。雜湊函式通常是用來做資料壓縮,使資料量變小,常見像是網頁數位簽署、登入驗證、壓縮程式,甚至是現在的NoSQL Key-Value儲存概念,都有雜湊函式(Hash Function)的身影。值得一提的是這個套件的貢獻者Wush Wu是唯一台灣人,且也是Taiwan R User Group的共同創辦人。

這個可以透過正規表示式(Regular Expression)去處理大量的字串,像是檢查、配對、替換等等。

主要提供日期、時間、時區的標準化處理。

這個套件可以協助我們透過R做各種報告,像是HTML、Sweave等等,好處是我們可以透過該套件做可重製之研究(Reproducible Research),該套件目前已經內建在R studio中。此外這個套件的貢獻者也有Wush Wu。

這個套件是做原型(prototype)非常好用的工具,尤其在大型公司的資料團隊,我們經常會需要做原型在進行展示。透過shiny就可以達到這個目的。知名的例子像是ebay就是採用shiny產生原型測試後,在用Java語言佈署到應用層。有興趣可以參考筆者整理去年底2014 R Taiwan 研討會來自eBay資深資料採擷工程師的簡報

在此也祝大家新的一年新年快樂、事事順心、揚眉吐氣。


參考資料:






2014年12月30日 星期二

2014 R Taiwan 研討會精彩簡報整理

2014 Taiwan 研討會圓滿於12月19、20日圓滿落幕,這次較去年更為盛大,參與的人與單位也更多,本次活動主辦包含:

  1. 中華R軟體學會
  2. 臺北商業大學資訊與決策科學研究所
  3. 臺北商業大學資訊與決策科學研究所資料科學應用研究中心
  4. 東吳大學海量資料研究中心
協辦單位包含:
  1. 中華電信學院
  2. 統計之都(COS)
  3. 臺灣資料科學與商業應用協會
  4. 德明財經科技大學研發處
  5. 台北科技大學區域產學合作中心
  6. 中國電機工程學會
  7. 財團法人中華民國電腦技能基金會
  8.  東吳大學巨量資料管理學院
除了議題較去年更為多元,研討會時間更是從一天延長到兩天。研討會地點從學校,提升到業界單位,參加人數更是提升一倍以上。從這些數據可以觀察台灣在資料科學、大數據等相關數據領域的探索上,較2013年 R 研討會更為成熟。



以下為第一天的議程與簡報:
  1. 巨量資料對台灣產業的機會與挑戰
     (資策會 林蔚君 所長)
  2. 雲端巨量資料運算服務
    (
    中華電信 葉筱楓 副經理)
  3. R在新藥研發中的應用
    (中國統計之都 李艦 顧問)
  4. 運用R建置潛客預測模型
    (陳文欽 博士)
  5. R在行動廣告大數據分析與整合應用
    (VPON移動數據團隊 首席數據科學家趙國仁 博士)
  6. R與地圖信息的可視化
    (SupStat數據科學家  郎大為 先生)
  7. 台灣企業跨入大資料世界的兩難
     (美商Teradata台灣分公司  客戶經理 楊明禮 先生)
  8. R在金融數據分析之應用
    (東吳大學 吳牧恩 博士)
  9. 實現資料解析生態系統
     (Data Analytics Ecosystem)在高科技智慧工廠 (宇清數位智慧股份有限公司徐紹鐘副總)
以下為第二天的議程與簡報:
  1. 務實的大數據思維:Learning from political campaign trail–從Clinton, Obama選戰學習
    (愛訊國際顧問有限公司  陳彥廷 先生)
  2. Growh hacker 的 R 工具箱
    ("在路上"旅行APP Growth Hacker 張翔 先生)
  3. 網站實驗設計框架與實戰
    (eBay資深分析師 陳麗雲 女士)
  4. 粉絲團群集與推薦應用
    (國立臺北商業大學  資訊與決策科學研究所 林文政 先生)
  5. R的簡單網路應用-玩轉網站資料
    (中強光電新事業應用發展部  資料研發工程師 湯明軒 先生)
  6. 地理信息與LBS位置服務
    (中國統計之都 李艦 顧問)
  7. R和機器學習在ebay的企業級應用
    (eBay資深資料採擷工程師 趙揚 先生)
  8. R在新媒體中的應用
    (精品購物指南報社精品報系 首席編輯 別業青 女士)
  9. 基於R語言的投資監控平臺之構建
    (首鋼集團  財務部分析師 鄧一碩 先生) 
這兩天的研討會可以看到大數據在各個領域逐漸發展,像是顧客行為分析、新媒體應用、行動廣告、預測潛在顧客等行銷應用。像是半導體製程數據分析的製造業應用。像是乳癌篩檢的醫學應用等等。

在眾多R語言的應用中,筆者觀察R語言已經在大型企業與小型企業有異曲同工之妙,如在大型企業的eBay中資料分析師利用R具有多元演算法的特性,以R進行各項演算法模型的建立,並透過R語言打造基本雛形,再交給工程單位用Java進行軟體工程的調整,因此大型企業主要是透過R語言建立「分析流程」。

在一般小型企業,R語言則肩負了分析與工程的雙重角色,除了快速建立各項資料分析模型之外,並建立雛形,提供給PHP、ROR、Node.js進行軟體工程的整合,因此小型企業使用R語言進行「雛型建立」。

拜這些開放原始碼的進步,早期的艱澀難懂的演算法,透過R語言已能夠快速被應用,甚至在兩三天內做出雛形系統。因此資料科學家可以花較多的時間進行部門間的溝通,資料科學家除了熟悉演算法的特性之外,更要懂得透過演算法協助企業創造價值,譬如:哪些演算法可以提升業績、哪些演算法可以提升工作效率、哪些演算法可以降低營運成本等。透過R語言的應用彈性,為自己在公司中持續創造價值。


明年的資料科學相關研討會,將會更盛大更精彩,敬請期待!
祝各位2015新年快樂!



2014年資料相關領域研討會回顧:



2014年10月3日 星期五

什麼是大數據的新架構「資料湖泊」?

隨著資訊科技的發達,企業開始面臨大量數據的儲存問題。過去許多企業從導入資料庫,到導入 資料倉儲,甚至商業智慧。以面對不斷增長的資料以及資料的應用問題,但資料持續增加,傳統架構將可能不敷使用。

因此有個新名詞「資料湖泊(Data Lake)」(又稱數據湖泊、DL)因應而生。該名詞於2011年最早出現在富比士(Forbes)雜誌,「Big Data Requires a Big, New Architecture」一文中。

資料湖泊(Data Lake)有別於我們提到的資料倉儲(Data Warehouse),資料倉儲(DW)的資料通常是品質較高,且是被預先處理過的資料。而資料湖泊(DL)則是儲存大量且龐雜的資料,作為資料素材(Data Material)的儲存池(Pool),以便未來分析使用。

因此資料湖泊(DL)使資料科學家在資料分析上擁有更大的分析彈性。

資料湖泊(DL)被提起後,EMC也開始使用這個名詞進行大數據產品的推廣。

今年1月富比士(Forbes)雜誌的「The Data Lake Dream」一文中,提到了資料湖泊(DL)成熟度的分為四級,筆者將圖片重新翻譯繪製並整理如下:

圖一:資料湖泊成熟度第一級

首先是成熟度第一級「尚未導入DL」,紅色為應用服務(資料庫),綠色為資料倉儲,部分資料間互相串接,部分資料傳遞到資料倉儲進行分析。該架構也是目前企業普遍的資料架構,各個資料庫相互獨立,只有少部分資料庫整理資料後,傳到資料倉儲做分析應用。此成熟度有3個重點:
  1. 企業所有應用服務(資料庫)都各別獨立。
  2. 僅部分資料庫將資料傳遞到資料倉儲。
  3. 資料科學家透過資料倉儲進行資料分析。

圖二:資料湖泊成熟度第二級

當進入到成熟度第二級「導入Hadoop」,紅色為應用服務(資料庫),綠色為資料倉儲,藍色為Hadoop、深藍色為資料分析器。這時候資料庫開始把部分資料往Hadoop進行傳遞,資料科學家可透過Hadoop進行ETL(資料萃取、轉換、讀取),提升分析效率。本成熟度4個重點:
  1. 企業的應用服務(資料庫),開始將部份資料儲存到Hadoop。
  2. Hadoop開始透過MapReduce處理資料。
  3. 資料科學家使用Hadoop進行ETL接著放到資料倉儲或開發資料分析器。
  4. Hadoop處理好的資料傳回應用服務(資料庫)
圖三:資料湖泊成熟度第三級

進展到成熟度第三級「資料不斷增長的資料湖泊」,紅色為應用服務(資料庫),綠色為資料倉儲,藍色為Hadoop、深藍色為資料分析器。這階段Hadoop可以說是扮演資料中心的角色,負責儲存巨量、龐雜、高不確定的資料。本成熟度有4個重點:
  1. 所有應用服務(資料庫)都以Hadoop為中心進行串接。
  2. Hadoop開始整合外部的資料來源。
  3. 透過資料分析語言或工具(如:R、Python、Impala, Greenplum, Spark等) 與Hadoop進行互動。
  4. Hadoop成為所有資料儲存的目的地,以便利企業進行資料治理(Data Governance)。


圖四:資料湖泊成熟度第四級

最後到成熟度第四級「資料湖泊與應用雲端平台」,目前只有少部分公司的資料規模可以做到,像是Google、Amazon、Alibaba、Facebook,因為這類型企業的資料已經大到一個規模,需要高效率的資料處理架構。這時候企業應用服務(APPs)的資料存取大部分都由Hadoop這邊作互動。在這個階段主要強調資料安全(Data Security)與資料治理(Data Governance)的部分,進行加強。本成熟度有4個重點:

  1. 所有的新的應用服務全都建立在Hadoop的平台上。
  2. 新的應用服務的資料庫佈署時間將減少。
  3. Hadoop成為分散式的資料運算平台,運用於資料管理與分析。
  4. Hadoop強化資料安全與資料治理的功能。
最後筆者整理了資料庫、資料倉儲、資料湖泊三個不同特性比較給大家參考。

表:資料科學實驗室整理

上述表格,可以讓我們快速了解這些不同的名詞之間的差異。在企業中,面對大數據的浪潮,除了掌握上述的成長模式,也要依據資料庫、資料倉儲、資料湖泊的特性,分別將這些資料儲存模式定位,賦予不同的任務。

至於資料湖泊一定要用Hadoop嗎? 筆者的回答是不一定,就好像現在SQL Database有Oracle、MySQL、MS SQL等,NoSQL Database有MongoDB、CouchDB等,永遠都有很多選擇。只是目前Hadoop是國際間處理大數據較為穩定的技術,國外近年的新創公司也都採用Hadoop協助企業做資料管理。

筆者認為只要掌握前面四級的資料湖泊成長模式,相信企業就可以很快掌握大數據的處理方向,至於使用什麼技術,技術的特性是什麼,下回再談。先讓我們一起迎接充滿數據的未來吧!

參考資料: