Amazon SageMaker Canvas產(chǎn)品測評——人人都是“業(yè)務(wù)分析師”
編輯導(dǎo)語:可能每個人的日常工作中,都或多或少地會涉及到業(yè)務(wù)分析模塊,那么在社會普遍對效率有所追求的情況下,我們在日常業(yè)務(wù)中,是否可以借用工具來實現(xiàn)業(yè)務(wù)分析價值的最大化?也許,亞馬遜云科技推出的Amazon SageMaker Canvas就屬于這類型工具之一。本文作者就對其進行了測評體驗,一起來看一下吧。
一、事實是,我們都在做業(yè)務(wù)分析
無論你是否意識到,我們每天的工作實際上都包含了業(yè)務(wù)分析。
試著想象以下這些場景:
- 移動游戲運營想提升付費用戶比例,會通過分析用戶使用行為,得出影響付費的因素,從而采取針對性的運營手段。
- 超市老板進貨時,會綜合考慮以往銷售情況、地段、季節(jié)等因素,分析出每件商品要備的庫存量。
- 房屋中介在管理客戶時,會根據(jù)客戶的個人情況、背景資料和意向信息分類跟進,提升成交量。
盡管上述場景的主人公都并非專業(yè)的業(yè)務(wù)分析師(business analyst),但他們知道怎樣讓自己做出更聰明的判斷。
而這恰恰就是業(yè)務(wù)分析的本質(zhì):通過收集和處理業(yè)務(wù)數(shù)據(jù),分析得出某種趨勢、模式或根本原因,并根據(jù)這些洞察做出數(shù)據(jù)驅(qū)動的業(yè)務(wù)決策 [1]。
二、可是問題是……
盡管我們都或多或少在用自己的方式,通過“業(yè)務(wù)分析”來完成工作,但是問題也在一一浮現(xiàn)。
1. 期望更進一步
數(shù)據(jù)量大、影響因素多、缺乏專業(yè)的建模能力等等,都會使我們在實際分析業(yè)務(wù)時往往停留在表面,而錯過了挖掘背后更深的洞見。
比如,在分析影響用戶付費的因素時,我們的運營同學(xué)定位到多種相關(guān)的行為指標(biāo):
- 用戶來源:來源于渠道A的用戶付費比例更高;
- 日均活躍時長:活躍的用戶付費比例更高;
- 日均互動數(shù):互動多的用戶付費比例更高;
- 是否參與激勵活動:參與過的用戶付費比例更高。
以上的結(jié)論雖能幫我們判斷出哪些特性的用戶更具有付費意愿,但想進一步知道:哪些指標(biāo)影響更大,指標(biāo)間是否會相互影響,能否在下次運營活動前就能預(yù)測出最終效果,往往還是無從下手。
2. 結(jié)論對么?能不能快速驗證
或許憑借業(yè)務(wù)經(jīng)驗,我們能覺察出某一指標(biāo)是決定用戶付費的關(guān)鍵因素,或是能預(yù)估到下一個季度的銷售情況。
但問題是:能否通過數(shù)據(jù)來快速驗證我們的結(jié)論;或者是否有更專業(yè)的方法來論證我們的猜想。
3. 溝通的成本
此外,當(dāng)我們期望將自己的洞察分享給團隊其他伙伴,又開始思考要怎樣有效地闡明自己的判斷。
或是當(dāng)我們的洞察可以提煉出一套能長期執(zhí)行的決策模型時,要如何讓數(shù)據(jù)科學(xué)家或算法工程師在此基礎(chǔ)上進一步優(yōu)化并部署發(fā)布。
三、更好的方式:工具助力分析
幸運的是,很多專業(yè)的服務(wù)團隊也發(fā)現(xiàn)了以上這些問題,從不同角度為我們提供了解決方案。
1. 入門級全能選手:Excel
Excel絕對是人手一個的必備辦公軟件,它簡單易用,也是很多原始數(shù)據(jù)的存儲格式,方便加工處理。我們可以通過簡單的函數(shù)處理、數(shù)據(jù)透視以及可視化圖標(biāo)等功能,快速地發(fā)掘數(shù)據(jù)中一些潛在的信息。適用于數(shù)據(jù)量不大,較簡單的統(tǒng)計、分析和預(yù)測。
2. 專精可視化分析:Tableau、PowerBI
主打拖拽操作和全程可視化,幫助我們在數(shù)據(jù)準(zhǔn)備(包括多表合并、數(shù)據(jù)清理等)和數(shù)據(jù)展現(xiàn)上實現(xiàn)自助,大大降低普通用戶與數(shù)據(jù)交互的門檻。更適合團隊內(nèi)共享數(shù)據(jù)洞察。
3. 分析預(yù)測大師:Python、各大公司提供的云上AI服務(wù)、專業(yè)BI軟件等
相較于前2類,這一類產(chǎn)品我們可能比較陌生,多是數(shù)據(jù)科學(xué)家在使用。
雖然它們在海量數(shù)據(jù)處理、統(tǒng)計預(yù)測、數(shù)據(jù)建模、數(shù)據(jù)挖掘等方面具有絕對的優(yōu)勢,但也正因為專業(yè)度過高,需要編寫代碼或機器學(xué)習(xí)等專業(yè)知識,一般人很難上手。
所以不會寫代碼、零經(jīng)驗就真的無法享受到機器學(xué)習(xí)帶來的超強助攻么?
不慌,亞馬遜云科技為我們帶來了解決方案:
亞馬遜云科技的機器學(xué)習(xí)服務(wù)下的SageMaker Canvas平臺,主打0代碼機器學(xué)習(xí)預(yù)測服務(wù),讓普通從業(yè)者也能方便地構(gòu)建機器學(xué)習(xí)模型來獲取洞察和進行預(yù)測。
接下來,就一起來體驗下 Amazon SageMaker Canvas (下面簡稱Canvas)的實操效果吧。
四、Canvas初體驗
體驗官:未接觸過機器學(xué)習(xí)的產(chǎn)品經(jīng)理。
體驗場景:這里設(shè)想了2個場景,分別看看Canvas在業(yè)務(wù)獲取洞察和進行預(yù)測上的表現(xiàn)。
場景一:獲取洞察
1)背景
公司引入外部供應(yīng)商承接項目時,往往會先經(jīng)過競標(biāo)流程。
競標(biāo)時會將同樣的測試任務(wù)指派給多個供應(yīng)商完成,依據(jù)返回的效果判斷最終哪幾個供應(yīng)商中標(biāo)。
2)目標(biāo)
哪些是決定供應(yīng)商是否中標(biāo)的關(guān)鍵因素。
3)體驗過程
① 數(shù)據(jù)導(dǎo)入
通過業(yè)務(wù)分析篩選出可能影響供應(yīng)商中標(biāo)的字段包括:
- task_id:任務(wù)編號(一個任務(wù)可以指派給多個供應(yīng)商)
- total_num:任務(wù)的數(shù)據(jù)總量
- task_type:任務(wù)類型
- if_standard:是否為標(biāo)準(zhǔn)任務(wù)(標(biāo)準(zhǔn)任務(wù)才有報價單價)
- unit_price:供應(yīng)商報價的單價
- tech_percent:技術(shù)分占比;技術(shù)分占比高表示更注重技術(shù)評分
- busi_percent:商務(wù)分占比;商務(wù)分占比高表示更注重價格便宜
- supplier_id:供應(yīng)商編號
- bid_result:是否中標(biāo)
- est_time:預(yù)計任務(wù)總工期
- deliver_time:本次交付的時間
- deliver_score:本次交付的技術(shù)評分
取的是最近3個月的數(shù)據(jù),一共是一個csv文件,共12列*1068行。
來到Canvas平臺,先按指引配置了支持本地上傳能力后,直接將表拖拽上傳就OK了。
整體的數(shù)據(jù)導(dǎo)入流程還是比較順暢的。不過因為我最開始的原始數(shù)據(jù)是中文的,而Canvas暫時不支持中文字符的顯示,所以這里又返回重新處理了一遍數(shù)據(jù)。
② 創(chuàng)建模型
切換到【Build】模塊后,可以方便地在下方預(yù)覽關(guān)聯(lián)的數(shù)據(jù)集字段:包括字段的缺失比例、是否有和數(shù)據(jù)類型不匹配的值、有多少唯一值、平均數(shù)/眾數(shù)等等??梢院芎玫貛椭覀兛焖倭私庹w數(shù)據(jù)情況。
當(dāng)選擇好目標(biāo)字段“bid_result”后,系統(tǒng)會根據(jù)所選目標(biāo)列的類型自動推薦合適的模型“2 category prediction”;當(dāng)然你也可以根據(jù)實際情況進行修改。目前看到Canvas給出的模型大類包括:分類預(yù)測、數(shù)值模型和時間序列預(yù)測。
可以在quick build之前先預(yù)覽模型,快速獲得模型預(yù)估準(zhǔn)確率和各個字段的影響分值。
可以看出,影響供應(yīng)商是否中標(biāo)的最重要的前3個因素是supplier_id、deliver_score和deliver_time,而最不重要的2個因素是task_id和if_standard。
這樣的結(jié)論基本符合實際情況:
- 一些供應(yīng)商的交付能力比較高,所以更容易中標(biāo)。
- 供應(yīng)商得分和交付時間本身就是定標(biāo)時的重點考核依據(jù)。
- 而任務(wù)編號以及是否屬于標(biāo)準(zhǔn)任務(wù)屬于任務(wù)本身的屬性,應(yīng)該影響比較小。
我們可以綜合Canvas給出的字段影響分值以及業(yè)務(wù)實際情況,來篩選最終用于訓(xùn)練的字段:
比如我嘗試取消勾選了impact值最小的task_id和if_standard,更新后發(fā)現(xiàn)模型預(yù)測準(zhǔn)確性反而降低了。這也許是因為在實際情況,任務(wù)編號或是否屬于標(biāo)準(zhǔn)任務(wù)可能會影響供應(yīng)商的選擇范圍。
又取消勾選了那些在試標(biāo)前未知的因素(包括est_time、deliver_score和deliver_time),現(xiàn)在最重要的前3個因素變成了供應(yīng)商編號、報價單價和任務(wù)總數(shù)據(jù)量。
有一點疑惑的是,我發(fā)現(xiàn)系統(tǒng)會自動給出字段的數(shù)據(jù)類型且不支持修改。但是有部分字段的數(shù)據(jù)類型是不符合預(yù)期的:比如supplier_id被判斷為了numeric類型,但該字段本身應(yīng)該屬于categorical,這可能是因為supplier_id的取值是數(shù)字的原因。
想了解錯誤的數(shù)據(jù)類型會不會對模型準(zhǔn)確率造成影響,所以我又新建了一個模型,將supplier_id的取值修改為了N1、N2、N3…,這時data type成功變成了categorical。但預(yù)覽后發(fā)現(xiàn)模型的預(yù)測準(zhǔn)確率其實沒有太大的變化。
確認(rèn)沒有影響后,使用quick build看下最終生成的模型效果。
③ 模型分析
Quick Build得到的模型準(zhǔn)確率和Preview Model一致,但是可以看到各個字段更詳細的影響度分布和模型評分。
a)supplier_id
supplier_id的影響度是用箱型圖呈現(xiàn)的??梢钥吹焦?yīng)商N1最易中標(biāo),供應(yīng)商N2和N3相對容易中標(biāo),供應(yīng)商N5和N8則相對不容易中標(biāo)。這一洞察能引導(dǎo)我們進一步分析這些供應(yīng)商的能力或資質(zhì)有哪些差異,從而更早篩選出能力優(yōu)的供應(yīng)商。
b)unit_price
報價這一塊沒有得到很好的洞察,貌似整體看都是偏向中標(biāo)的。
還是之前的那個疑問,unit_price的數(shù)據(jù)類型為什么會被系統(tǒng)自動定義為Categorical(分類)呢,是因為它的unique取值只有46個么?
c)total_num
total_num的影響度是用散點圖呈現(xiàn)的。粗略看,好像是任務(wù)總數(shù)據(jù)量過大時不容易中標(biāo)。
不過因為過多的點集中在1~200001這個區(qū)間,不容易看出當(dāng)任務(wù)總數(shù)據(jù)量少時的影響。這里如果能支持調(diào)節(jié)橫坐標(biāo)區(qū)間的話,可能會更加方便。
最后來看一下模型的混淆矩陣(誤差矩陣):
總體來說,生成的模型在預(yù)測未中標(biāo)時的準(zhǔn)確率更高(可能是因為原始數(shù)據(jù)里Yes的比例更高吧)。
④ 模型預(yù)測
從上面的分析模塊,可以大致獲得以下2個洞察:
- 供應(yīng)商N1相對容易中標(biāo),供應(yīng)商N5和N8則相對不容易中標(biāo);
- 任務(wù)總數(shù)據(jù)量過大時不容易中標(biāo)(相對影響較?。?/li>
我們可以通過【Predict】這個模塊快速驗證一下。
預(yù)測方式包括2種:批量預(yù)測和單行預(yù)測。
a)單行預(yù)測
各個字段的默認(rèn)值應(yīng)該取的是平均數(shù)/眾數(shù)。右側(cè)顯示當(dāng)前輸入值下的中標(biāo)結(jié)果預(yù)測以及平均預(yù)測結(jié)果。
當(dāng)修改supplier_id到N8后,可以看到當(dāng)前場景中標(biāo)結(jié)果預(yù)測是No,與猜測一致。
當(dāng)修改total_num到1000000后,預(yù)測結(jié)果沒變。但是新的預(yù)測值相對于平均預(yù)測結(jié)果來說,No的概率變高了一點。
可以看到,單行預(yù)測能方便地更改輸入值來更新對應(yīng)的預(yù)測結(jié)果,以及觀察新的預(yù)測值相對于平均預(yù)測結(jié)果的變化情況。
b)批量預(yù)測
可以選擇一個字段匹配的數(shù)據(jù)集來批量生成預(yù)測值以及對應(yīng)的概率。因為這里我用的是已有數(shù)據(jù),可以對比看到準(zhǔn)確率還是挺高的,并且和洞察基本吻合。
場景二:預(yù)測
1)背景
超市老板進貨時,會綜合考慮以往銷售情況、店鋪位置、季節(jié)等因素,來預(yù)估未來各個商品的銷售情況,從而提前準(zhǔn)備合適的庫存。
2)目標(biāo)
預(yù)測未來7天各個店鋪不同類別商品的銷售量。
3)體驗過程
① 數(shù)據(jù)導(dǎo)入
這里用的數(shù)據(jù)來源是kaggle上的store sales數(shù)據(jù) [2]。
影響物品銷售量的因素包括:
- 時間——季節(jié)或周期性波動
- 是否有促銷活動
- 店鋪位置
- 商品種類
- 歷史銷售情況
- 一些其他可能的影響:比如工資漲幅、地震、油價等。
由于Canvas的免費測試單元格只有100w,所以先線下對數(shù)據(jù)做了簡化處理。
最終選擇了3個表。
train.csv
- prod_id:商品編號(包含店鋪信息和商品類別)
- sell_date:銷售日期
- store_nbr:店鋪編號
- prod_family:商品類別;共6個
- prod_sales:商品銷售額
- onpromotion:打折幅度
一共是6列*32670行。
stores.csv
- store_nbr:店鋪編號
- store_city:店鋪所在城市;共6個
- store_type:店鋪分類;共4類
一共是3列*15行。
holidays_events.csv
- sell_date:銷售日期
- holiday_type:節(jié)假日類型;共2類
一共是2列*84行。
因為數(shù)據(jù)來源于3個不同的表,所以這次嘗試了一下Canvas的join功能。
Join預(yù)覽這里的統(tǒng)計只是顯示前100個的,這里給體驗造成了2個阻礙:
- 當(dāng)我看到holiday_type的Distinct values為0時,一開始以為3個表join沒有成功。
- 不能直觀看到不同的join方式所形成的數(shù)據(jù)集差異。
字段名這里是可編輯框,但實際是不支持修改的。如果像Tableau那樣支持修改的話,會更方便。
數(shù)據(jù)導(dǎo)入這里還有一個問題是后來發(fā)現(xiàn)的:到了生成模型的時候,遇到了一個這樣的錯誤提示“Field state should not contains a reserved word”。
上網(wǎng)搜索后才發(fā)現(xiàn)預(yù)測模型對上傳的數(shù)據(jù)集字段名有一些限制,所以又要返回第一步進行修改。這個如果能在一開始導(dǎo)入的時候做好提醒,或者出錯后能直接修改字段名就好了。
最終join完成后,3張表變成了一個9列*33660行的大表,可以進入下一步了。
② 創(chuàng)建模型
這里的數(shù)據(jù)集字段預(yù)覽出現(xiàn)了一個提示:onpromotion這個字段有“Missing Values”,提示說源數(shù)據(jù)集中的某些字段缺少未來值,可能會造成預(yù)測準(zhǔn)確度偏低,建議更新數(shù)據(jù)集。
這個提示還是有點疑惑的:比如為什么只有onpromotion需要給出未來值,返回后更新數(shù)據(jù)集的入口在哪里。在查詢了使用手冊 [3]后也沒有得到很好的說明,所以暫時沒有做處理。
看了一下目標(biāo)字段prod_sales有42%的值為0,總體分布圖呈現(xiàn)右偏斜。
這里還發(fā)現(xiàn)了新功能“數(shù)據(jù)清洗”,可以快速為一些缺少值的數(shù)據(jù)設(shè)置默認(rèn)值。
最后為時間序列預(yù)測模型配置好參數(shù)后,直接standard build(暫僅支持)就好了。
③ 模型分析
可能是因為沒有處理missing value的問題,最后生成的模型準(zhǔn)確率比較低。
時間序列預(yù)測模型的分析維度和二分類預(yù)測不太一致,它主要是選取了2個維度:
- 模型整體的WAPE準(zhǔn)確度(加權(quán)絕對百分比誤差 [4])
- 各字段對預(yù)測值的影響度:onpromotion、holiday_type和store_city會提升預(yù)測值;而prod_family和store_type會降低預(yù)測值。
可以理解打折促銷以及節(jié)假日能提升商品的銷量;但是為何店鋪所在地能提升銷量,而商品類型和店鋪類型會降低銷量,就需要進一步分析了。
④ 模型預(yù)測
最后來看看模型預(yù)測的效果吧。
預(yù)測方式也包括2種:全部預(yù)測和單行預(yù)測。
a)單行預(yù)測
這里只需要選擇待預(yù)測的字段值(某個店鋪的某類商品)就可以自動生成相應(yīng)的時間序列預(yù)測模型。
因為我之前配置的預(yù)測天數(shù)是7,這里展示了14天的數(shù)據(jù)(包括預(yù)測前7天)。
紫色的線為給出的預(yù)測值,還有對應(yīng)的上下限。預(yù)測結(jié)果總體還是比較直觀的,但是由于之前未處理missing數(shù)據(jù)的原因,預(yù)測準(zhǔn)確度不高。
b)全部預(yù)測
點擊后需要運行的時間比較久,而且這里沒有限制多次預(yù)測,不知道會不會影響預(yù)測速度。
耐心等待后發(fā)現(xiàn)最后效果如下:P50應(yīng)該是給出的預(yù)測結(jié)果,p10和p90是對應(yīng)的上下限。
整體評價
整體來說,作為一個小白用戶能全靠自己摸索走完整個模型創(chuàng)建、分析和預(yù)測的流程,實際體會一下機器學(xué)習(xí)在業(yè)務(wù)分析中的作用,還是很有成就感的。
當(dāng)然出于對產(chǎn)品能不斷優(yōu)化完善的期望,這里從用戶體驗和產(chǎn)品功能2個角度給出了個人評價。
1)用戶體驗
① 加分項
- 易用性強:點擊式、可視化界面操作,小白用戶也能快速上手。
- 流程易學(xué):能一步步引導(dǎo)用戶完成 數(shù)據(jù)選擇 – 創(chuàng)建模型 – 模型分析 – 模型預(yù)測 4個步驟。
- 布局合理:頁面設(shè)計(圖標(biāo)、提示文案、按鈕等)十分清晰合理,能快速找到所需的信息和功能。
② 待提升項
a)提示不夠及時
- 比如模型已經(jīng)開始運行了,等待幾分鐘后卻提示要新增配置forecast。
- 或者模型運行后告知字段和系統(tǒng)保留字段有沖突,要返回第一步修改數(shù)據(jù)。
b)容錯性一般
比如誤點了standard build或多次點擊prediction后不支持取消,需要等待幾小時。
c)有一定的學(xué)習(xí)成本
- 對于非專業(yè)數(shù)據(jù)分析人員,一些提示或說明比較迷惑。
- 普通用戶可能不知道如何通過箱型圖、散點圖、混淆矩陣等進行分析獲取洞察。
d)對中文的支持度不夠好
- 平臺目前全英文展示,部分提示或說明理解起來比較困難。
- 不支持帶中文字符的源數(shù)據(jù)。
- 時間序列模型的節(jié)假日模式也不支持中國。
e)延遲感偏強
部分操作響應(yīng)速度比較慢,也遇到過幾次長時間loading的情況。
2)產(chǎn)品功能
① 超預(yù)期
a)數(shù)據(jù)導(dǎo)入
靈活度高:可支持多個數(shù)據(jù)表自由join。
b)創(chuàng)建模型
- 可視化程度高:用戶可以方便地預(yù)覽數(shù)據(jù)集字段的各項統(tǒng)計指標(biāo)。
- 自動化程度高:可以根據(jù)用戶所選的預(yù)測目標(biāo)列準(zhǔn)確推薦最合適的訓(xùn)練模型。
- 模型預(yù)覽能力:能快速獲得模型預(yù)估準(zhǔn)確率和各個字段的影響分值。
- 支持Quick build和Standard build2種方式,滿足不同場景的模型創(chuàng)建需求。
c)模型分析
- 可視化指標(biāo)豐富:包括各個字段的影響度分布箱型圖、散點圖、模型整體的混淆矩陣等。
- 能方便地復(fù)制或下載數(shù)據(jù)圖表,與他人共享。
d)模型預(yù)測
支持批量和單行2種方式,滿足不同場景的預(yù)測需求。
② 待滿足
a)數(shù)據(jù)導(dǎo)入
沒有發(fā)現(xiàn)支持更新數(shù)據(jù)的入口。
b)創(chuàng)建模型
- 對已導(dǎo)入數(shù)據(jù)的處理能力較弱。
- 缺少不同模型對原數(shù)據(jù)要求的說明。
- 不支持設(shè)置目標(biāo)預(yù)測對象為組合列。
c)模型分析
- 不能給出進一步優(yōu)化預(yù)測準(zhǔn)確率的建議。
- 支持用戶自定義分析的配置較少。
- 一些專業(yè)的統(tǒng)計圖表缺少像Tableau數(shù)據(jù)解釋 [5] 類似的功能,幫助用戶更好地發(fā)現(xiàn)洞察。
d)模型預(yù)測
- 預(yù)測失敗時缺乏解釋或指引,只能重試。
- 缺少對預(yù)測結(jié)果較為詳細的說明,比如一些新增的字段含義是什么、為什么批量預(yù)測表最后有多行空值等。
五、總結(jié)
回歸最開始的問題,Canvas真的能使普通從業(yè)者進行專業(yè)的業(yè)務(wù)分析,方便地構(gòu)建機器學(xué)習(xí)模型來獲取洞察和進行預(yù)測么?
從體驗結(jié)果來看,能,但也不全能。
現(xiàn)階段,Canvas的確能做到讓普通用戶也能0代碼通過機器學(xué)習(xí)從已有數(shù)據(jù)分析生成可用的預(yù)測模型。但最終能否獲取有價值的洞察,預(yù)測是否準(zhǔn)確,仍會受很多因素的影響:比如輸入數(shù)據(jù)的質(zhì)量、用戶自身的統(tǒng)計學(xué)知識和分析能力等等。
從普通業(yè)務(wù)人員到真正的業(yè)務(wù)分析師,工具只是我們強大的助手,正如Amazon SageMaker Canvas 并非智者本身而是其引路人。
引用
[1]?https://www.oracle.com/cn/business-analytics/what-is-business-analytics/
[2] https://www.kaggle.com/competitions/store-sales-time-series-forecasting/data
[3] https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-make-time-series-forecast.html
[4] https://aws.amazon.com/cn/blogs/china/measuring-forecast-model-accuracy-to-optimize-your-business-objectives-with-amazon-forecast/
[5] https://help.tableau.com/current/pro/desktop/zh-cn/explain_data_basics.htm
本文由 @咯咯咯 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Pexels,基于CC0協(xié)議。
很漲知識的一篇文章!就是小白的我看著還是比較懵的哈哈