打破機器學習技術與業務藩籬——Amazon SageMaker Canvas深度體驗
編輯導語:機器學習這一概念并不是人人都懂,也因此,一款可以讓用戶無需擁有對應經驗、即可實現機器學習智能分析的工具便容易讓用戶感到好奇,例如Amazon SageMaker Canvas。本篇文章里,作者就對這款工具進行了體驗測評,一起來看一下。
作為一個曾經干過數據分析、數據挖掘、且目前從事數據產品工作的“數據人”,當聽說亞馬遜云科技推出了零代碼、不需要機器學習經驗就可上手的機器學習預測工具的時候,我腦海里條件反射性浮現出當年那個抱著算法啃到哭的少女,以及隨之而來魯豫老師的聲音:我不信~~
抱著一顆一探究竟的好奇心,我登錄官網看到有兩個月的免費體驗期后,便馬上跟著官方指引注冊設置好賬戶,決定深度體驗一下這款產品——Amazon SageMaker Canvas。
下面,我就以具體使用場景為切入,從“數據分析”、“產品設計”兩個角度來分享下這一個多月來我的體驗使用感受。
一、業務數據分析場景:用戶注冊預測
在零售客戶營銷領域,最重要的管理方式莫過于分類施策。對不同特點、處于不同階段的客戶采取針對性的營銷手段,才能在有效的預算范圍內最大程度提升營銷效果。
比如,我們都知道在客戶流失之前對其進行挽留的效果要遠好于已經流失后再采取措施、以及如果能預判客戶注冊產品的可能性,就可以提前采取更為精準的營銷方式,等等。
因此,準確預測客戶在某種維度上的類別或可能性,提前進行精準的營銷干預,對提升投入產出比是非常關鍵的事情。如何預測?以用戶注冊預測為例,目前各企業一般采取以下兩種方式:
一類是業務部門根據自己的業務經驗總結出哪些特征對用戶是否注冊某產品的影響較大,滿足這些特征的便判定為“會注冊”。
稍微嚴謹一點的會給每個特征賦予權重,計算得出注冊可能性分數。但選什么特征,如何賦權,很大程度是依賴于業務同事多年對數據的觀察總結和業務經驗沉淀。
這種方式的優勢在于,邏輯簡單,業務解釋性強;但缺乏對數據的深度挖掘,預測準確率較低,同時非常依賴個人經驗。
另一類則是由專業的數據科學團隊根據業務部門的預測需求,利用機器學習算法選取特征,訓練、驗證數據,最后輸出一套最優模型進行預測。
由于運用了專業的數學及統計理論對歷史數據進行挖掘探索,準確性較第一種方式有了很大提升。不過由于邏輯復雜,專業門檻高,整個過程對于業務同事而言是“黑匣子”般的存在。
相應地,數據科學家在業務經驗方面較為缺乏,過程中需要與業務同事高度協作。對于這種“你不懂業務,我不懂算法”的情況,怎么能夠高效溝通一直是很多企業在面臨的阻礙。
此外考慮到整個過程耗費的人力算力和時間成本,利用機器學習探索數據的方式在企業里一直很難普適性地推廣開來。
總之,現狀就是業務分析和機器學習模型之間的確或主觀或客觀都存在著一道隔閡。但Canvas官網的產品優勢介紹(圖1),仿佛就在說它可以打破這塊藩籬。為了印證,我將自己代入為一個不懂代碼不懂算法的業務分析角色,切實體驗下如何在Canvas中進行用戶注冊預測。
圖1(來自官網)
第一步:數據準備
本次使用亞馬遜云科技官網中的數據集,背景為銀行業務分析師想要預測哪些客戶最有可能注冊存款證,數據字段如圖2。
圖2:銀行營銷數據集字段說明
首先將數據集拆分為訓練集和測試集。因為官網數據集是比較規整的,為了更貼合平時業務分析工作中的數據情況,再將訓練集縱向拆分成兩張表(trainA、trianB)。
tainA包括了客戶的基本信息及目標值(圖2中的2-8和目標字段y)、trainB包括剩余的客戶活動信息以及宏觀經濟指標(9-21字段),兩個數據集均有客戶代碼。同時,我將部分字段的值替換為缺失值以更貼合實際情況。
第二步:將訓練集導入Canvas
進入Canvas首頁后,在dataset(數據集)中選擇Import(導入)??梢钥吹接腥N導入方式:
- 本地upload:直接拖拽本地文件上傳。
- S3儲存桶:從S3云中載入數據。
- 構建鏈接器從第三方數據源(Redshift和Snowflake)導入。
前兩種方式我都嘗試了一下。對于3萬多行、22個字段的數據,導入用時大約10秒。導入后可立即對數據進行預覽。
圖3
現在需要把導入的兩個數據集trainA、trainB拼接成一張具有完整特征和目標信息的表:train。該數據處理過程一般在建模之前會事先用其他工具完成。
但我發現Canvas在導入數據后,就自帶了這個數據連接功能:Join Data:用鼠標拖拽想要連接的表,自定義連接方式及連接鍵,合并為一張表。
雖然最終達到的效果同Excel的Vlookup、SQL的join、以及python的pandas.concat等,但這種可視化的拖拽方式在操作便利度上還是有了極大提高。
至此,我們的訓練數據集train已完整導入。
圖4
第三步:訓練數據,建立模型
首先,添加并命名New Modle:bank-marketing。接下來跳轉到的建模頁面依次有四個模塊:Select(選擇數據)、Build(建立模型)、Analyze(分析模型結果)、Predict(預測新數據)。按照模塊順序,我開始照著頁面提示進行操作。
1)Select dataset
這一步是選擇訓練數據集,先前導入及拼接好的數據都可供選擇。而且此步驟也可以跳轉到第二步從本地或云上導入數據集。我選擇了先前導入拼接好的數據集:train。
圖5
2)Build
數據集選擇好之后,自動跳轉到了Build頁面。Build頁面簡潔地分為四個區域:數據集統計概覽、目標字段指定(Select a column to predict)、模型類型選擇(Model type)、建模(Preview model、Quick build、Standard build)。
① 數據集統計概覽區:各字段的統計概覽已經自動呈現出來,包括:
字段基本信息(數據類型、缺失值個數及占比、格式不匹配值的個數及占比、去重數統計、均值、眾數)。
可以預覽到此數據集中存在缺失值,不過Canvas官方介紹說建模時會自動進行缺失值、格式不匹配值自動進行處理。且諸如歸一化、數值編碼、分箱等特征工程操作,Canvas都會內部自動處理。這對業務人員對所導入數據集的事前處理也降低了要求。
圖6
字段分布統計可視化:
圖7
字段篩選查看:
圖8
② 目標字段指定(Select a column to predict):需要我們選擇模型的預測目標字段:y。
此時,旁邊的Modle type(模型類型選擇)已經根據我所選擇的目標字段快速匹配好了相應的模型類型:二分類模型(2 category prediction)
圖9
在Model type中,我們還可以自行選擇模型的類型。Canvas目前支持的模型類型有(圖10):二分類模型(2 category prediction)、三種及以上分類模型(3 +category prediction)、回歸模型(Numeric model type)、時間序列預測模型(Time series forecasting)。當我測試導入包含時間列數據集、且選擇了一個變化的數據列作為目標,會自動匹配到時間序列的預測任務。
圖10
建模區域有正式建模和預建模。預建模(Preview model)是正式模型構建之前,Canvas幫我們粗略搭建的模型,通過Preview model,我們可以大概了解模型的預測效果、以及每個特征字段對目標值y的影響程度(圖11)。
Canvas初步建立的Preview model顯示,模型的準確率為91.682%,并且loan對目標值y的影響程度最小。為了減少不重要特征值的干擾,同時提高建模效率,我在正式建模時,沒有勾選字段Loan,并且從業務知識我可以知道cusid對用戶的是否注冊也是沒有影響的。因此我去掉了對特征字段Loan、cusid的勾選,并開始正式建模。
圖11
正式建模分為“Quik build”、“Standard build”。前者用時較快(2-15min),后者根據數據集大小不同大約需要耗時2-4小時,但預測準確率更高。可根據模型應用場景的嚴謹度要求不同進行選擇。我選擇了”Quick build“進行建模。在等待期間,也是可以正常使用Canvas的其他界面。
第四步:模型分析
2分鐘后,我得到了Quick build的最終建模結果。對目標值y的預測準確率為91.649%。
圖12
此外,我還得到了更多信息:
1)單特征影響(Column impact)
我可以看到每個特征對客戶是否注冊的影響程度大小,其中duration,也就是客戶上次被聯系的持續時間大小對客戶是否注冊存款證的影響是最大的,其次是就業指數。
并且,每個特征字段的具體取值是如何影響預測目標的可視化分析圖也在旁邊被清晰地展示出來。例如,通過對比圖中contact兩類取值的中位線高度,就能看出相比使用座機聯系客戶,使用手機聯系的客戶注冊存款證的可能性更高。這對后續我們營銷客戶存款證該采取哪種聯系方式有很大的指導意義。
圖13
2)模型評價指標
我們還可以看到該分類模型的桑基圖(圖14)、各種評價指標和混沌矩陣(圖15)。
例如,我們看到在真實注冊了存款證的客戶有570個,其中有375個被模型準確預測到了,這說明準確率precision為65.789%。而所有預測為會注冊存款證的客戶有696個,其中375個是真的注冊了,則模型召回率recall為53.879%。
由于我們在營銷過程中,關注重點在于找出那些可能注冊的客戶(y=yes),如果現階段的營銷策略較為激進,寧愿誤判客戶會注冊,也不愿漏掉一個可能注冊的客戶,那precison更高的模型就是更符合我們營銷政策的;如果現階段的營銷策略較為保守,希望預測會注冊的客戶中大多都是真的會注冊的客戶,則應該選擇recall更高的模型。
值得一提的是,也許不是所有業務分析人員都能馬上理解precision、recall等指標的含義。但?;鶊D(圖14)則能讓一個就算完全不懂機器學習的人也能夠快速直觀地看出分類預測結果與實際值之間的關系。
圖14
圖15
第五步:新數據目標值預測
現在模型已經建立好,并且我們對模型的分類結果也有了直觀地了解。接下來就是在實踐中檢驗“真理”的時刻了:對訓練集以外的新客戶數據進行預測。Canvas的預測方式有:批量預測和單點預測。
1)批量預測(Batch prediction)
我導入了之前準備好的驗證數據集,1萬多行的數據集在5秒鐘之內便得出預測結果(圖16)。預測結果中不僅有客戶的分類結果(是或否),還有客戶被預測為“是”或“否”的概率值。
這樣,我們就可以根據預測為“是”的概率大小降序排列,制定不同優先級程度的營銷手段,例如為“是”的概率大于80%的客戶,將其推送至客服專人電話營銷,概率在50%-80%之間的客戶,僅通過短信營銷。
圖16
2)單點預測(Single prediction)
這里我錄入了單個客戶每個特征字段的值,Canvas便預測出這個客戶有99.844%的概率不會注冊存款證。當我們想要對某個客戶進行重點營銷或關注時,這樣的單點預測便能極大提高便捷度。
圖17
第六步:分享模型給數據科學家
在一些非常重要的業務預測場景下,我們常常會對預測的準確性有更嚴格的要求或者想要模型在業務中更長期廣泛地應用。這時,可以利用Canvas將我們訓練好的模型通過Studio Link分享給數據科學家,他們便可以直接對模型的底層代碼進行進一步的調試優化、部署等工作。
二、從業務數據分析預測角度看Canvas
Canvas的使用群體定位是不會代碼、沒有機器學習經驗的業務分析人員,那么從業務數據分析工作的角度來說,我體驗總結出Canvas的以下應用價值:
1. 適用于各類業務預測場景
包括分類預測、數值回歸預測、時間序列預測。例如,精準營銷需要對客戶的注冊可能性進行分類預測、金融風控需要對客戶將來是否會逾期進行分類預測;倉儲管理需要根據歷史情況預測庫存需求量(回歸預測);零售門店管理需要對具有周期性特點的客流量進行預測(時間序列預測)……
2. 提高了業務預測的準確性、可解釋性
從文章開頭提到的目前兩種業務預測方式可以看出,業務預測的準確性和可解釋性通常很難兼得,而Canvas可以讓業務人員通過機器學習模型進行預測以及挖掘出的每個特征變量的取值影響,分析結果可以更準確、有依據地應用于業務運營管理決策。且整個過程業務方參與度高,業務可解釋性也相應得到很大提升。
3. 提高了機器學習應用的普適性
由于Canvas將機器學習預測的能力產品化、無代碼化。企業人員使用機器學習的門檻大大降低,一方面能解決傳統業務分析方式下對個人分析經驗極度依賴的情況;另一方面能使得機器學習在企業內得到更普適廣泛的應用。
4. 極大降低了業務分析人員與數據科學家的溝通成本
Canvas可以將業務同事建立的模型分享給數據科學家,便于其對模型代碼進一步優化。雙方在業務和技術的對接上直接通過Canvas形成了共識,使得業務與技術的溝通協作更加高效。
三、從產品設計角度看Canvas
1. 產品定位清晰且直擊痛點
Amazon Sagemaker Canvas的用戶定位為無代碼及機器學習經驗、但有通過數據來進行業務預測需求的群體。這恰好瞄準了企業數據分析現狀的痛點,很大程度上彌補了業務分析與機器學習應用之間的隔閡。
此外,Canvas在使用過程中可以與亞馬遜云科技的其他產品搭配使用,例如與Amazon S3、Amazon Redshift的數據對接、與Amazon SageMaker Studio的底層聯動,清晰界定的產品范圍及搭配方式也讓用戶的使用體驗更加高效。
2. 功能結構化繁為簡
我將Canvas的功能模塊結構梳理如圖18 。其中最主要的模型建立部分包括四個步驟:選擇數據(Select)——建立模型(Build)——分析模型效果(Analyze)——進行預測(Predict)。整個過程看似簡單,卻囊括了機器學習的全流程,在化繁為簡的同時,能充分滿足業務人員的分析預測需求。
圖18
3. 交互操作簡潔易懂
首先從界面上來看,Canvas的UI風格及配色上都非常簡潔(圖19),每個界面的要素都是必要且最少;在我操作的過程中,只需要跟著功能菜單的順序和提示一步一步進行即可,并且操作都是點擊、拖拉這樣的簡單方式。
數據的展示及模型評價分析時,大量采用可視化圖表,直觀易懂。的確是不需要寫一行代碼、機器學習零經驗的人也能快速上手使用。
圖19
四、體驗感悟
因為我自己以往的工作中在業務部門做過數據分析,也在技術部門做過數據挖掘,經歷過不懂代碼不會機器學習卻必須要給業務做預測分析的階段,也經歷過后面花大量時間學習寫代碼和機器學習算法轉崗數據挖掘、但卻離業務越來越遠的階段。
Amazon Sagemaker Canvas 巧妙地打破了這兩者的壁壘,其無代碼也體現出產品背后強大的技術支撐,畢竟功能開發需要深刻場景理解及技術積淀。
在使用過程中我多次聯想到當年計算機從Linux邁向圖形交互界面所產生的里程碑式的影響。
Amazon Sagemaker Canvas表面上是一個無代碼機器學習預測服務平臺,但其實本質更體現出一種“科技普惠”的理念,讓機器學習技術能夠被更廣泛的、有需求的人應用。而這種“科技普惠”所帶來的質量和效率提升、資源成本的節約,正是當前各企業數字化轉型過程中最重要的價值。
本文由 @離子燙電臺頭 原創發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Pexels,基于CC0協議
很高興作者能分享這么優秀的文章!
說下看完文章的體會:
1.零代碼機器學習平臺確實提高了日常工作中處理數據的效率!特別對于一些簡單數據簡單問題,應用平臺提供的開箱即用的算法能夠取得很好的效果。
2.對于一些復雜問題復雜算法,希望在產品交互和功能集上能夠做的更好
3.希望更多的機器學習平臺開源或者商業推廣出來,共建美好生態
謝謝這位朋友走心的評價,希望以后多多交流,互相學習!
讓技術走向產品化,才能最低成本地大量復制并服務于業務。
是的????