顯示具有 Data scientist 標籤的文章。 顯示所有文章
顯示具有 Data scientist 標籤的文章。 顯示所有文章

2019年9月9日 星期一

[ML Study Jam] How Google does Machine Learning的Module 3 Quiz學習日誌之企業導入機器學習的方法

How Google does Machine Learning的學習日誌

最近Google連續辦了兩次ML Study Jam的活動,包含
ML Study Jam 機器學習培訓計劃- 初級- 首頁,以及ML Study Jam 機器學習培訓計劃- 進階-首頁,這兩階段的課程內容,個人覺得非常適合企業在導入ML給同仁必上的內容,尤其適合非科班出身的又想轉型的朋友們。

在進階課程的當中,筆者覺得在「How Google does Machine Learning」當中,有許多有趣的題目與內容,是自己多年做資料科學服務有所共鳴的,希望能夠透過部落格分享學習的心得,提供給想導入ML的企業與想持續學習導入ML的朋友。(請注意本篇文章僅針對部分題目提供心得分享,並非答案分享)


過去筆者在導入多年的資料科學服務當中,發現資料科學家要有一個非常重要的能力,是能夠快速辨識這家企業與題目,到哪一個階段,接著再給予對應的服務內容,避免導入過程資源的浪費,而課程當中Google整理了一個「Path to ML」來幫忙大家釐清企業的ML導入階段。

在Module 3 Quiz的部分,有一題要學員能夠針對題目,以「Path to ML」五階段做辨認,而其中五階段包含「Individual contributor」、「Delegation」、「Digitization」、「Big data and Analytics」、「Machine learning」,在ML and Business Processes課程當中,個人覺得非常好的一個觀念是,企業要導入一個從無ML->有ML的過程,必須先找到流程上的輸入與輸出,接著在輸出中透過數據與ML找出具有洞見的結果,將結果回到流程上去改善輸出。

因此回到「Path to ML」,我們首先要能夠辨認,我們在企業流程中,到底是哪一個階段,才能去藉由階段工作來正確導入ML,筆者整理如下:

I for individual contributor:任務的本體,如單一櫃員
D for delegation:多個可執行任務的人,如多個店員
Z for digitization:數位化的工具,如ATM,可以透過機器進行重複化的工作
B for big data and analytics:透過資料挖掘洞見,提升營運效率,如汽車生產
M for machine learning:透過前面的數據,以機器學習來自動化改善整個營運效益,如推薦系統

聰明的朋友,如果題目如下,您會將上述的I,D,Z,B,M,分別放在哪裡呢?

問題1
製造工廠有許多機械手臂,整個生產團隊透過手臂上收集的數據來幫助確定生產的時間表。
問題2
一個客戶服務團隊持續接收在線上的訂單
問題3
一個圖書館員在城市圖書館工作
問題4
停車收費系統根據可能預期的需求來自動改變費率
問題5
自動電子收費器透過讀取汽車牌照跟駕駛索取過路費(如ETC)

問題1看起來非常明顯是以數據來挖掘洞見,問題2與問題3很容易理解是傳統的運作階段,問題4與問題5比較容易會有誤會是在「digitization」與「machine learning」的差別,但仔細一看,事實上ML有個關鍵是透過數據「自動化」原先的流程,因此會獲得一個不斷改變的輸出,答案就出來了。


看起來大家都有十足的把握了,我們繼續看一下去,如果題目如下,您們的選擇為何?

題目6
所有任務,包含執行參數、選擇參數、參數回饋都是自動化
題目7
一個人在執行任務,而這個任務與指令來自人與人之間的方式運作
題目8
一個電腦執行任務,而軟體工程師透過歷史的模式,來進行參數的調整。
題目9
一個電腦執行過程是透個人從介面上輸入參數來進行。
題目10
一個任務是從一群人來完成

問題6我們可以發現全數自動化,會是機器學習的強項,答案是非常明確的。接著在問題7與問題10的部分,也很容易辨識是傳統1個與多個人的運作方式,最後這次的題目8與題目9分別就相對明顯很多,題目9單純只有透過介面來做互動,而題目8則透過數據挖掘模式來進行參數調整。


最後在Quiz最尾端的題目也非常有趣,題目大意是在說一家企業需要在一年內導入ML,我們是這家企業的顧問,而我們應該請該企業集中資源在哪一個地方,譬如說:「定義關鍵目標」、「收集資料」、「建立基礎設施」、「最佳化演算法」、「整合模型」。

其實有經驗的顧問會選擇「收集資料」,因為這是所有企業導入ML的最重要的問題,尤其以筆者過去的經驗是,傳統企業常常是因為沒有資料而無法導入ML。而其他都不重要嗎?並不是,而是沒有資料,對於定好目標、建立設施、最佳化算法、整合模型就都沒有了意義。

但是筆者提一個觀點是,如果我們企業要導入ML,也不能盲目的收集資料,而是要了解解決什麼問題。
所以回過頭來,一樣可以觀察公司目前的階段,從沒有ML->有ML,我們在「Individual contributor」、「Delegation」、「Digitization」、「Big data and Analytics」、「Machine learning」是哪一個階段,才能將資源妥善運用在導入ML的正確方向當中。

以上是筆者對於「How Google does Machine Learning」的Module 3 Quiz拙見,歡迎討論。

2015年10月16日 星期五

透過Python與Spark做氣象大數據分析

In this project, we applied Spark in weather data analysis. This application includes uploading data to Object Storage, establishing RDD, making data filtered, calculating the average of data, printing results and sorting. Based on the uses mentioned above, Bluemix Spark includes many advantages. It can start to make data analysis within one minute. Users only need to push one to two button to make resource extension. (You can choose the memory and the number of hosts)  It is convenient for users to make data storage and access and they do not have to consider infrastructure problem.

Spark helps us enter data analysis environment  quickly, so that data scientists can create more values for the data.  

還記得幾年前接觸Hadoop的時候,碰到運算分析的問題,都要特別的去考量分散運算的問題,像是有些需要做迭代的演算法(如:基因演算法),作法上因為需要一直大量做Map Reduce,所以都會有效能的問題,因此最後大部分的做法都回到In-Memory上做計算。



一直到去年2014年11月Databricks團隊透過 Apache Spark國際資料排序基準競賽(Sort Benchmark Competition)(新聞),以不到30分鐘的時間排序高達100 TB的資料量,打破Hadoop的72分鐘,將分散式運算(Distributed Computing)產業的應用領域帶到另一個高峰。Spark源自於加州柏克萊大學的AMPLab,這個實驗室投入各項數據分析的應用已經很多年,像是資料探勘、機器學習、資料庫等等,其中一位成員Matei為Spark主要發展者,目前已經是麻省理工學院的助理教授,同時也是Databricks的技術長。

Spark目前依存在Hadoop Ecosystem裡面,像是Hortonworks (HDP2.2)開始就有包含Spark,而普遍的做法就是搭配Hadoop的Hbase或HDFS使用,搭配的語言包含Java、Scala、Python、R (1.4版本開始支援),這些都是目前資料科學家常使用的語言。

今天的主題並不是主要介紹Spark,而是於2015年8月剛IBM推出的Apache Spark for Bluemix。我們都知道資料科學家需要專注於分析上,因此在基礎設施上需要一個便利的環境讓資料科學家能夠使用。(筆者按:其他雲端服務亦有類似功能,但仍須安裝與設定,包含:AzureAWS)



而Bluxmix上的Spark就有這樣的潛力,他們把Jupyter Notebooks直接整合在Spark上面,讓資料科學家可以直接進行計算與分析,在儲存方面則採用Swift Object Storage的檔案儲存方式,方便做存取之用。如下圖所示,資料科學家只需要在Jupyter Notebooks上面直接下指令,就可以與資料進行互動,完全不需要擔心基礎設施的問題。

筆者接下來就進行簡單的實作透過Python語言體驗一下Apache Spark for Bluemix

首先我們必須申請Bluemix的帳號,登入後進入下面網址:
https://console.ng.bluemix.net/catalog/apache-spark-starter/

步驟一、
接著就會看到下圖,接下來選擇右邊的「Apache Spark」,並點選Create進行Deploy。

步驟二、

不到一分鐘,就會看到已經佈署好的Spark,同時他也把Object Storage也整合完成,同時我們也可在Instances與Memory Quota上面直接調整我們想要的Spark分散主機數量,以及每一台的記憶體多寡。最後我們就可以透過上方Routes旁的網址,直接進入Spark的畫面。
步驟三、
進入後,直接點選右邊的Launch即可登入。


步驟四、
進入之後會出現Jupyter Notebooks需要做帳號密碼的輸入,我們可以回到前面步驟二的畫面中找到下圖所示的密碼資訊,它放在Environment Variables裡面的app_pw裡面。

步驟五、
接著我們就可以直接進入Jupyter Notebooks直接做分析! 
首先我們到國際氣候數據網站(National Climatic Data website)進行天氣資料下載,如下圖所示。





步驟六、
使用ZIP將檔案進行解壓縮,得到2015.csv檔案,因為檔案內容相當大,透過Excel打開會很久,筆者這邊是使用Sublime Text把檔案打開,在第一行加入「STATION, DATE, METRIC, VALUE, C5, C6, C7, C8」,如下圖所示:

步驟七、
回到步驟三的頁面,點選右下角的Manage Files,我們要把csv檔案上傳到Bluemix Object Storage,如下圖紅框所示:

步驟八、
Object Storage的密碼與Jupyter Notebooks登入密碼相同,我們輸入後就到右邊「+」的符號進行新增資料,並填入ClimateDataForTutorial,建立內容,完成後就會如下圖這樣呈現:

步驟九、
點選我們建立的ClimateDataForTutorial,上傳資料集,如下圖所示:
步驟十、
從這個階段開始,我們將開始進行資料分析,下面操作程式碼都已內建在Jupyter Notebooks上面,所以讀者只要照著操作,基本上不會有太大的問題,如果需要筆者的程式碼,請參考筆者GitHub,如果您想自己安裝Spark,也可參考這裡

首先我們先設定資料路徑,Spark的資料結構名為彈性分佈式數據集(Resilient Distributed Dataset 簡稱RDD),Spark透過RDD將資料進行分區儲存與處理,因此我們透過sc.textFile這個指令就可以建立RDD,接著在輸入weather.count()就可以查看整個資料集筆數,如下圖所示,2015.csv有超過兩千萬筆資料。

步驟十一、
接下來透過Lambda指令建立一個匿名函數(Anonymous functions),將line : line.split(",")結果進行回傳,將資料改成行並以逗號做分割,透過map產生一個新的RDD,叫做weatherParse,如下圖所示:
步驟十二、
透過filter抓取降雨量(PRCP)的資料,獲得weatherPrecp資料,接著將資料做個整理,一樣透過map加上Lambda將資料轉換產生新的RDD為weatherPrecpCountByKey如下圖所示:
步驟十三、
接著透過reduceByKey,將把個Key的相同元素做一個reduce的動作,譬如說我們RDD資料有(A,2)、(B,2)、(A,5),我們想把它做x + y的動作,那reduceByKey就會產生(A,7)、(B,2)的結果。同樣地用到這裡,是希望將前面整理好的氣象站降雨量資料,做某一些特定動作,在這裡我們一樣做加總,並產生新的RDD為weatherPrecpAddByKey如下圖所示:


步驟十三、
接著我們將資料做平均的計算,一樣透過map搭配計算公式的方式取得每個氣象站的平均值,產生名為weatherAverages的RDD。

步驟十四、
到這一步基本上都已取得各氣象站的平均降雨量,接著我們只要印出來即可。透過下面指令的動作,我們可以獲得前10筆的資料,結果如下圖所示:
for pair in weatherAverages.top(10):
    print "Station %s had average precipitations of %f" % (pair[0],pair[1])

步驟十五、
我們再透過下面指令做降冪排序的動作,由大排到小,結果如圖所示:
for pair in weatherAverages.map(lambda (x,y):  (y,x)).top(10):
    print "Station %s had average precipitations of %f" % (pair[1],pair[0])

完成了簡單的資料讀取與處理。


透過上面實作,我們完成了幾個部分,包含上傳資料到Object Storage、建立RDD資料、將資料做過濾、將資料進行平均的計算、以及印出結果與排序。綜合以上使用,筆者整理Bluemix Spark特色如下:
  1. 不到1分鐘就可以開始進行資料科學運算
  2. 只有1~2個按鈕就可以資源擴展 (可自選記憶體與主機數量)
  3. 便利的資料儲存與取用
  4. 不用顧慮基礎設施問題



2015年8月23日 星期日

「2015 台灣資料科學愛好者年會」精彩資料整理

2015 台灣資料科學愛好者年會」為一年一度的台灣資料科學盛事,參加人數超過千人,這次的活動從2014年的兩天,加長為四天的活動,並且同軌進行,包含「R資料分析上手課程」、「g0v 零時政府黑客松」、「DSP 資料開竅 ▪ 企業論壇」、「資料新聞實戰營」、「Hadoop/Spark 資料科學快速體驗營」、「地圖資料視覺化課程」,以及最精采的「年會主議程」,內容相當豐富也很精采。



以下為筆者所收集的資料科學年會相關活動資料內容

新聞:
  1. 阿里巴巴副總裁車品覺:資料是一種信仰!
  2. 中華電信如何培訓資料科學人才,先讓IT學會商業心法做起
  3. 大資料分析苦手不用怕,資料科學愛好者年會帶你Hadoop做中學
  4. 臺灣資料科學愛好者年會擴大舉辦,阿里巴巴和IBM華生團隊首席帶頭開講
  5. 【活動快訊】資料科學家們 attention!「2015 台灣資料科學愛好者年會」來啦
  6. 2015 台湾资料科学爱好者年会 开始售票!
  7. [展望2015]25%企業今年將導大資料,資料科學人才更搶手
  8. 阿里巴巴、KKBOX資料科學年會同台尬大數據心法
  9. 【資料科學愛好者年會】數據說故事的年代,國際資料新聞人為台灣記者上一課
  10. 為什麼打造一支資料科學團隊如此重要?
  11. 混搭多樣的會議-2015 台灣資料科學愛好者年會
  12. 港大計算機教授:大資料時代也要有大教育思維
文章:

  1. 資料新聞實戰營 d|Bootcamp Taipei!

簡報:
  1. 2015 台灣資料科學愛好者年會-開場
  2. Key Failure Factors of Building a Data Science Team - 趙國仁
  3. 運用空間決策改進緊急醫療品質-詹大千
  4. 巨量與開放資料之創新機會與關鍵挑戰-曾新穆
  5. 以健保資料分析對抗健康新聞的恐慌症候群-張俊鴻
  6. 人口統計應用於選舉預測-蔡佳泓
  7. Learning for Big Data - 林軒田
  8. 海量視覺資料-孫民
  9. 由點、線至面:從影像分析角度探討漫畫的組成與風格-朱威達
  10. 心理學x資料科學-黃從仁
  11. Big Education in the Era of Big Data-金國慶
  12. 從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-崔殷豪
  13. 資料科學在數位音樂的實踐與分析-KKBOX 林佑璟、羅經凱
  14. 雲端影音與物聯網平台的軟體工程挑戰:以 Skywatch 為例-陳維超
  15. 使用 Elasticsearch 及 Kibana 進行巨量資料搜尋及視覺化-曾書庭
  16. Visualization over Web: Tools and Tips-吳泰輝
  17. 軟工人的資料科學奇航-線上遊戲、網路學習與中華職棒 by 許懷中
  18. 計算社會學-江彥生
  19. 應用資料科學於交通網路解析-闕嘉宏
  20. 社會物理學-以意念流的數據化來打造智慧企業及城市 by 張毓倫
  21. 2015 台灣資料科學愛好者年會-閉幕

研討會共筆:


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

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協助企業做資料管理。

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

參考資料:




2014年9月25日 星期四

21個醫學影像分析的R軟體套件


筆者由於工作需要,所以整理了一下在R裡面有關醫學影像分析(Medical Image Analysis)的技術,純粹供有需要的朋友們參考。小弟不是醫學影像專家,若有敘述錯誤,請不吝指正,謝謝。

第一個部分跟醫療數位影像傳輸協定(Digital Imaging and Communications in Medicine 簡稱DICOM)有關。DICOM是針對醫學領域所制訂的一種通訊規格,該規格把一般的影像包成一個物件IOD(Information Object Definition),有點像是XMLJSON格式,主要把影像分為兩大部分,像素資料與影像屬性。


2014年8月31日 星期日

「2014 台灣資料科學愛好者年會」精彩資料整理

8/30~8/31於中央研究院舉辦的「2014 台灣資料科學愛好者年會」告一段落。
順手整理這兩天的精彩文章、演講與課程的簡報給大家參考!
共8篇文章、16份簡報、6場R課程簡報。



2014年8月30日 星期六

13個資料科學實驗室精選訊息(2014/08)

筆者精選資料科學相關的關注訊息之整理。

關鍵訊息:
  1. 看資料找故事工作坊-千萬資料可以化約成幾個數字,但每個數字背後都有一個故事
  2. 看資料找故事工作坊-橫看成嶺側成峰,遠近高低各不同,未識故事真面目,只緣身在資料中
  3. 資料科學 IN 白色巨塔
  4. 資料視覺化公司Re-LAB
    記得兩年前觀察國外的Infographic公司大多都從2010年開始,而且總數不到一百家,沒想到台灣開始也有類似公司。
  5. Data scientist: Your mileage may vary
  6. 文章指出,資料科學家的薪水,已經漲到一年最多30萬美金,折合台幣900萬台幣,而且只需兩年的工作經驗,這數字真的很驚人。但資料科學家本身除了要會做,還要會想,如同小弟之前的文章「蘋果的Big Data職缺,想進蘋果也要懂資料分析」所說的,人才真的不好找!
  7. 馬來西亞:線上預訂餐廳服務 TableApp,來台取經後快速成長
  8. 資料價值還缺一味,資料科學團隊還缺一位
  9. Data Is Money: Why The Cloud Is Transforming Data Into A New Global Currency
  10. 全臺資料科學家周末齊聚南港,價值百萬年薪的經驗大公開
  11. 大數據評估公司Wecash閃銀獲IDG千萬級投資
  12. R tops KDNuggets data analysis software poll for 4th consecutive year
    2014最新的資料分析軟體使用比較出爐,R還是高於其他的軟體,排名依序為R>SAS>Python>SQL>Java,組合使用的比例還是以R+Python居多,其次是Python+SAS 。

技術文章:

2014年7月10日 星期四

大數據探索航空資料系列-達美航空

Logo/達美航空、攝影/Jerry

繼續本系列主題,本次介紹的應用是來自達美航空(Delta Air Lines),達美航空在這幾年扶搖直上,於2010年完成跟西北航空合併之後,成為全世界航線里程與客運機隊規模最大的航空公司。

這篇文章是2014年由SapientNitro廣告公司的數據分析師Myles Harrison所分享的文章,介紹它應用主成分分析(Principal Component Analysis)與K平均算法(k-means)去分析達美航空的飛機數據。


2014年7月3日 星期四

大數據探索航空資料系列-美國聯邦航空管理局

攝影/Jerry

最近筆者剛好讀到有關於大數據應用於航空資料分析,值得整理介紹給相關領域的朋友們參考。記得上Data Science Program的課程中,曾有學生邀請筆者至某航空公司擔任顧問,但筆者實在是分身乏術,所以希望這一篇能夠幫上航空界的忙。

其中一篇是2009年刊登在知名期刊Knowledge-Based Systems上的學術研究,主要是應用決策樹(Decision trees)從美國聯邦航空管理局(FAA)的數據來挖掘出可能會出現航空事故的特徵。研究所採用的分析工具為Megaputer Intelligence所開發的PolyAnalyst與挪威科技大學開發的Rosetta


2014年6月7日 星期六

蘋果的Big Data職缺,想進蘋果也要懂資料分析



最近全世界都吹起Big Data風潮,連蘋果(Apple)也一同蠢蠢欲動。最新的蘋果職缺中,今年2014年5月14日,蘋果的廣告部門開了一個高級軟體工程師的職缺。

筆者將職缺需求整理如下,提供相關的產業參考。

  1. 超過五年的軟體工程與資料分析的經驗
  2. 熟悉的工具須要包含Java、Python、Hadoop、R、SPSS、SAS
  3. 具有網路廣告的分析經驗
  4. 懂SQL,也就是過去大家熟悉的關聯式資料庫
  5. 理論的部分要懂資料探勘(Data mining)、資料匹配(Data matching)、機器學習(Machine learning)、 統計(Statistical techniques)、實驗設計(Experimental design)、最佳化(Optimization)。
  6. 具有大量數據的處理經驗,像是處理單位高達PB(Petabyte)以上的資料量。
  7. 具有解決真實問題的經驗
  8. 獨立的工作能力
  9. 關注資料分析的準確率與品質
以上主要的徵求內容,在台灣算是跨科系才能學到的能力,筆者舉例如下:
  • Java較偏資工系
  • R較偏統計系
  • Python與Hadoop可能偏資管系或資工系
  • SQL的部分偏資工與資管
理論的部分資管跟資工都可以選修到,有些還是必修,最佳化(Optimization)的課反而在工管系才可能碰到。當然現在有所謂的「資訊科學系」可能前述理論與工具都可能學習到。而個人覺得工具面的部份包含Java、Python、Hadoop、R這些開放原始碼,大部分都還是要靠學生自行學習。

最難的部分是在領域知識,像是蘋果的職缺需求就要網路廣告的分析經驗,對岸有些職缺需要懂金融、商業等領域知識的,這些領域知識在學校反而偏向是商業類科系才可能碰到,譬如筆者在大學修的廣告學、消費者行為,都需要跨修到企管系。

面對於這種職缺需要多年養成的職缺,企業不可能要求求職者百分之百都會以上技能,因為有些求職者即使會以上技能,個性與相處上反而也有問題,只能盡量取人格特質與技能較為平均的人才。i

以筆者的經驗,通常一般行情是很難請到具有上述能力的人才。因此筆者就根據企業所要發展的方向來決定這些能力的比重,像是工作在分析比重較高,就會著重在R與Python的能力,且具有商業分析概念,且具備「溝通」能力的人才,因為他一般的工作就是協助進行資料分析,並產製BI報表或平台的能力。而R跟Python本身就能完成這些事情,所以工作反而是在溝通與呈現,以及應用統計、資料探勘、機器學習等理論在實務上。

至於比較強調資料儲存與資料流通的,技術要求就會著重SQL、NoSQL上,因為這類人才就類似早期的資料庫管理師,強調在資料庫的配置,資料庫的管理,他的工作比較偏重資料庫、基礎設施、資訊安全,同時這個角色對於伺服器這些硬體設備也要有一定的了解。

最後,比較著重系統建置的,就會希望具有PHP、RoR、Python、C#與資料庫的能力。這個角色能夠提供前端與後端的系統建置,像是具有做過ERP、PLM這類大型系統的建置經驗,他們通常具備一些技能組合,像是PHP+MySQL、C#+MSSQL、RoR+PostgreSQL等等,他們負責將資料分析人員產生的雛型(Prototype)進行實踐。

這樣的分工組合就可以變成分析的人才專注在分析與商業應用探討,並做出雛形系統,資料庫人員專注協助資料庫管理與資訊安全,系統建置則專注將分析結果實施到企業系統上。

最後還要搭配專案經理或產品經理的角色,該角色具備領域知識與管理技能,如此一來就是一個理想的資料科學團隊雛型。

參考:
資料科學團訓班
資料爬理析 Python 實戰班2