數加平臺在資料探勘專案中的實踐
目錄
1. 背景
隨著越來越多的公司開始重視資料的積累和產品的敏捷開發,資料量的不斷增加和開發週期的不斷縮短,就形成了一對明顯的矛盾。所以一些列高效的開發工具,就變得尤為重要。
對於業務資料已經上雲的企業來講,阿里雲的數加平臺就提供了一套高效的雲上開發平臺。本文通過資料探勘業務的處理流程,簡單介紹一下數加平臺中各主要工具在資料探勘專案中的實踐。
2. 資料來源
數加平臺可以通過【資料整合】工具,將儲存在阿里雲上不同型別資料庫中(例如RDS等)的資料同步到數加平臺的【DataHub】中,也支援將本地客戶端的資料上傳到【DataHub】中。如下圖所示。

3. 資料處理
數加平臺的資料處理工具相對比較豐富,喜歡使用IntelliJ這類靜態編譯IDE的小夥伴,可以使用MaxCompute Studio。這個IDE就是基於IntelliJ開發的,所以功能比較全面,既支援開發SQL程式,也支援開發Java程式和Python程式,關於這款IDE的詳細使用者手冊,大家可以參考以下網址:
https://help.aliyun.com/document_detail/50889.html?spm=a2c4g.11186623.3.3.61af3baaBgHbf2
當然,對於喜歡使用Jupyter Notebook這類REPL方式的IDE,同時也喜歡使用Python這類動態程式語言進行資料處理的小夥伴,更是可以在Jupyter Notebook上高效使用【PyODPS】這款神器快速處理資料。關於這款神器的使用,我之前有一篇部落格作了比較詳細的介紹,這裡就不贅述了,請大家出門左轉,去看【淺談PyODPS】那篇部落格。網址如下:
https://yq.aliyun.com/articles/292672?spm=a2c4e.11155435.0.0.8dd83312JISqNK
不過,以上兩種方式都需要在本地電腦上預先安裝IDE環境,如果本地電腦上沒有安裝相應的IDE開發環境,也沒有關係,阿里雲十分貼心的在雲端給開發者們安裝了IDE環境,開發者可以直接通過瀏覽器,在雲端進行資料處理及模型開發。只要在數加平臺的【DataWorks】頁面點選【進入資料開發】的按鈕,就可以直接進入IDE環境【DataStudio】進行開發了。這個IDE的開發環境是拖拽式的視覺化開發環境,介面非常美觀大方,以工作流的方式呈現,非常便於理解。而且DataWorks 2.0版本的【DataStudio】開發環境,還把【PyODPS】和【機器學習(PAI)】這兩大神器整合進工作流,完成了從讀取資料,到資料預處理、特徵工程,再到模型訓練及預測的資料探勘專案中除視覺化呈現以外的全工作流程。此外,【DataStudio】還增加了對【跨租戶節點】和【OSS物件檢查】的控制,進一步增強了整個工作流的實用性。【DataStudio】的介面如下圖所示。

4. 模型訓練及預測
作為一名資料探勘工程師,我對數加平臺的【機器學習PAI】平臺,也是非常的喜愛。因為它既可以使用拖拽式的視覺化建模,也可以使用Notebook建模;而且無論使用傳統機器學習的演算法庫,還是使用深度學習演算法庫,都可以開箱即用,節省了大量安裝各種演算法庫及各種依賴的時間。尤其是深度學習框架,【機器學習PAI】平臺支援的深度學習框架非常多,TensorFlow、Caffee、MXNet、PyTorch等主流的框架都支援,而且底層還是通過GPU叢集來支援深度學習運算的,使用起來非常的舒服。回想起當初自己在本地叢集上安裝TensorFlow、Keras時,踩的各種系統底層依賴關係的坑,之後又遇到各種版本不相容的坑,真的是不堪回首……
不過,如此高效的【機器學習PAI】平臺,收費標準也是值得留意的,尤其是對個人賬戶在使用此服務的時候。詳細價格的網址如下:
https://www.aliyun.com/price/product?spm=a2c0j.7906784.0.0.826662dcGnkgfV#/pai/detail
以下兩圖是在【機器學習PAI】平臺上,使用不同演算法,針對不同業務場景建立的模型。


5. 資料視覺化
作為資料探勘的產品,最終呈現給客戶的大部分是視覺化的報表或者大屏。當然,也可以是作為下一步自動化處置的輸入或者觸發條件,從而形成全自動化或者有部分人工干預的智慧化決策系統的一環。但是作為產品,都離不開視覺化的部分。
數加平臺的視覺化產品【QuickBI】和【DataV】都是會讓我上癮的產品。使用【QuickBI】製作報表,真的是非常的Quick!而且美觀大方,2018年新增加的【資料門戶】功能,更是可以將不同業務場景的報表彙集起來,製作成一個入口網站,炫酷極了。不過我們公司的業務報表就沒辦法貼出來了,只能簡單的放一張全國地理分佈圖讓大家有個印象了。

【QuickBI】跟線下的商業級BI報表軟體(例如Tableau)相比,操作的簡便性和使用的流暢性都非常的好,而且從價格上比,【QuickBI】對企業使用者就顯得親民多了。對個人賬號來說,【標準版】一年大概500元人民幣的價格,其實也算不上貴,不過我還是沒捨得……工資的增長曲線的斜率遠小於物價增長曲線的斜率……就在將要發部落格的今天,我又得知一個噩耗,原本公司許諾的10W元優秀團隊的獎金突然變成了2K元,落到每個人手裡就變成了一張100元的京東購物卡……回想起駐場開發期間那些連續包宿奮戰的日日夜夜,我也只能默默流淚了……走遠啦!繼續!
不過,我還是以一年51元的價格,愉快的購買了【DataV】的基礎版,這個能製作炫酷大屏的神器。【DataV】的操作也非常的簡便,拖拽的方式,所見即所得的頁面,再加上現在越來越支援個性化的發展趨勢,以及很容易入手的價格,真有點讓人慾罷不能。下圖是我之前儲存的【DataV】中的一個示例,大家可以感受一下炫酷的效果。

6. 總結
至此,一個數據挖掘專案的全部流程就走完了。在數加平臺上,整個資料探勘專案可以實現敏捷開發,快速上線。但是如果是在本地叢集上開發,前期需要完成比較沉重且繁瑣的Hadoop、Spark等元件的部署,IDE開發環境的搭建,以及在此基礎上各種演算法類庫和深度學習框架的安裝工作;之後,才能根據具體的業務需求,開始資料探勘工作;在經過上百行甚至上千行程式碼的Coding & Debugging之後,完成建模的工作,準備進入產品視覺化的階段;這時,如果想要以報表的形式輸出資料探勘成果,就要選擇一款生成BI報表的軟體,這其中比較User Friendly的軟體多半都是商業級的,而且都價格不菲。不過單從技術角度來說,一般的資料探勘工程師還都是能應付得來的。可是,如果想要以頁面大屏的形式展現資料探勘的成果,那麼多半都會需要UI工程師和前端工程師幫忙了,這之後撕逼期的長短,就看每個團隊自己的造化了。這樣一來,如果想要達到跟在【數加平臺】上開發相近效率和速度,不光需要資料探勘工程師有較高的工程師素養,對整個資料探勘專案團隊的戰鬥力要求也是比較高的。簡單來說,也可以用下面兩個等式近似的作一個比較。
在對同一業務場景有相同理解的前提下,

通過上述比較,可以很明顯的看出資料業務上雲的好處了吧。不過也有很多使用者的資料是沒辦法上雲的,至少在比較長的一段時間內是沒辦法上雲的,比如說眾多的中央企業、政府部門等。針對這些客戶的資料探勘專案,阿里雲也正在通過各種開源專案為開發者們提供著各種敏捷開發的工具,比如用於大規模科學計算的引擎【Mars】,國內首個工業級的圖深度學習框架【Euler】,還有鼎鼎大名的流式計算框架【Blink】,等等等等。今天,阿里已經不僅僅是上雲的代名詞,對於一個數據挖掘工程師來說,阿里,更是大資料技術發展趨勢的風向標。
我現在正在學習和參與內測阿里的一些很棒的開源專案,下面是【Mars】和【Euler】的Github地址,【Blink】的地址等到開源之後也會貼出來。
【Mars】: https://github.com/mars-project/mars
【Euler】: https://github.com/alibaba/euler
希望有更多做開發的小夥伴們能夠把這些開源框架應用到自己的敏捷專案開發中,在提高自己專案開發效率的同時,也幫助這些開源專案更好的成長。在大資料領域中,為世界貢獻一箇中國的阿里!