萬字干貨 | 一文助你了解機器學習
本文將通過大量案例和通俗易懂的“人話”,講述機器學習建模邏輯和使用場景,讓非數據科學專業的職場人都可以快速了解機器學習是什么,能做什么,如何用!
從AlphaGo戰勝李世石開始,AI迎來了新一輪爆發增長,2018年,全球人工智能市場規模達到了73.5億美元,各個行業和領域幾乎都被AI滲透,各國對AI人才的爭奪也正愈演愈烈。
《中國人工智能發展報告2018》顯示:專利上,中國已經成為全球人工智能專利布局最多的國家,數量略微領先于美國和日本;產業上,中國的人工智能企業數量排在全球第二,北京是全球人工智能企業最集中的城市。
全球知名創投研究機構CB Insights評選出了100家最有前途的AI公司,國內的商湯科技,曠視科技,第四范式等6家公司殺入到榜單中,同時各大互聯網公司都在構建自己的AI實驗室。一方面通過AI技術挖掘用戶數據,通過+AI,優化現有業務,另一方面探索AI應用新場景,研發新產品,完成AI+,為企業尋找全新的增長引擎。
筆者有幸參與了一個機器學習建模實驗室項目,項目的本質是抽象機器學習建模流程,將機器學習建模過程組件化,通過在畫布上對組件(算子)靈活連接,讓非專家用戶(不會寫代碼,不熟悉算法模型和調參的產品經理,市場運營,行政財務等職場人)可以快速搭建機器學習模型,實現業務預測,極大降低機器學習應用門檻。
通過近十個月的學習和實踐,筆者對機器學習有了初步理解,本文將通過大量案例和通俗易懂的“人話”,講述機器學習建模邏輯和使用場景,讓非數據科學專業的職場人都可以快速了解機器學習是什么,能做什么,如何用!
本文共分為四個部分:
- 第一部分、介紹關于AI的常見誤區,回答機器學習是什么,可以用來做什么,怎么用;
- 第二分部、介紹機器學習為業務賦能的6個步驟,及非專家用戶的應用難點和解決方案;
- 第三部分、通過案例介紹二分類,聚類和回歸模型如何應用;
- 第四部分、介紹機器學習模型的主要應用場景和立項模板。
一、關于AI的幾個誤區
1. 只有那些科技公司才能應用AI技術?
這一輪AI的火爆始于AlphaGo戰勝李世石,隨后,智慧城市,智慧生活,智慧辦公和智慧醫療等概念可謂是鋪天蓋地,在各種媒體上能看到各種AI的高大上應用場景,如阿里的鹿班系統雙十一時每秒設計8000張海報,無人駕駛汽車在部分城市指定路段上路測試,機器人索菲亞獲得了沙特“公民”身份,滴滴利用AI模型預測城市不同位置用車需求,AI讀片進入各大醫院輔助醫生判斷癌癥,各種報道 讓一些非AI相關領域從業者感覺其過于高大上,似乎離自己很遠。
但筆者認為AI的價值不僅于此,各行各業其實都可以利用AI技術優化現有服務流程,提升效率。
筆者結合自身理解,舉一些機器學習在非互聯網公司中的常見應用場景。
- 會員智能化應用:基于歷史數據對會員精準營銷,挖掘用戶潛在消費需求,個性化優惠券下發,流失預警,新會員轉化路徑個性化配置等
- 商品智能化應用:預測未來X時間內銷售量,庫存量,訂單量,關聯銷售,優化供應鏈,預測市場容量,新品定價,設定折扣策略和作弊檢測。
- 異常分析:訂單異常分析,用戶異常分析,機械故障預測,羊毛黨分析,動態預警分析等。
除了上述場景外,只要業務需求可以抽象成分類預測問題,數值預測問題,都可以考慮利用機器學習輔助決策。
2. 使用AI技術必須掌握數學和python?
DT(Data technology)時代到來,企業在互聯網+的過程中積累了大量的數據,而AI技術就是幫助企業將這些數據有效利用起來的重要工具。
《中國ICT人才生態白皮書》顯示:到2018年底,我國人工智能人才缺口將突破100萬,到2020年,這個數字將攀升到226萬,?筆者認為,這個數字描述的是AI應用型人才,也就是知道如何利用AI技術優化現有業務的職場人,非人工智能從業者都會對其產生恐懼。
當我提到AI一般人鬧鐘都會出現兩幅畫面,如下所示:
寫代碼和復雜的數學公式領AI看起來門檻高不可攀,但是為了降低建模門檻,國內外大量公司都推出了自己的組件建模平臺,可以通過簡單拖拽無需編寫代碼,而負責的數學公式被封裝成算子組件。國外的亞馬遜AWS,微軟的AZURE,R2.ai,國內的阿里PI,第四范式的先知平臺都是類似產品。
現在深度學習建模過程也被封裝成了組件化建模,國外的deepcognition,國內即將上線的阿里PI新版本也將支持深度學習組件化建模,聯想的AI平臺可以支持簡單的圖像分類識別。
如果你感覺組件化還是麻煩,那么筆者要告訴你,現在自動化建模也是一大趨勢,國外的datarobot就是其中的典型產品,只需要上傳一份打好標簽的csv數據,選擇標簽,點擊開始,系統自動從數千開源模型中選擇100個模型進行自動化調參訓練,選出最優模型,并提易懂專業的數據和模型分析報告,指導非專家用戶使用。
所以不要因為懼怕寫代碼和數學而懼怕AI,其實他們沒有必然聯系,下文會介紹一些AI-機器學習的常用概念,進一步揭開AI的面紗。
3. AI相關的抽象概念太多,讓人不明覺厲
2018年羅胖的跨年演講中提到了人類的一項重要能力:抽象能力,世界太復雜,為了便于理解和溝通協作,我們會將很多事物進行抽象,但是,當我們不具備對抽象概念的還原能力時,我們常會產生恐懼,敬畏或排斥的情緒,對我們這些非數據科學專業的人來說。
初遇AI時就是如此,AI的底層是數學,而數學是對現實世界的高度抽象。當我們聽到算法,模型,過擬合,召回率,auc,隨機森林,樸素貝葉斯等高度抽象的詞匯時,當我們看到幾十行數學公式推導時,我們會本能的不明覺厲。
舉個例子:我這樣介紹我的項目:“我們利用無監督學習Kmeans模型完成用戶標簽聚類,使用XGBOOST模型,SVM模型預測用戶購買期望,進而實現精準推薦”。
聽完這句介紹你是什么感覺,如果一個完全沒接觸過機器學習的小白可能瞬間就懵逼了。原因很簡單,簡單一句話中包含了大量你無法理解的抽象概念,而事實可能并非如此。
同樣的介紹我換一種說法:“我們通過一些規則給用戶打上標簽,使用一套計算規則預測用戶希望購買哪些商品,然后給他們做相應推薦”,是不是瞬間感覺沒那么高大上了。
下文嘗試用簡單類比對這些抽象概念進行說明,但前提是讀者需要先摒棄掉那種對抽象概念的恐懼,我相信,看完本文后,當你聽到這些抽象概念時可以淡然一笑,既不恐懼也不敬畏,并且理解其本質。
網上有一張圖,很有意思,生動的表明了不同的人對機器學習的理解:
別人眼中的機器學習
先來看一些基礎概念,這些概念會在后面的數據預處理,特征工程,模型調參和評估中用到,現在這里做簡要類比和舉例說明。
4. 機器學習常用抽象概念梳理
ai,機器學習和深度學習。這三個概念是包含關系,ai>機器學習>深度學習。
我們耳熟能詳的深度學習實際上是機器學習大家族中的一個分支,如下圖所示,本文主要討論傳統機器學習(淺層學習)部分內容,深度學習還在學習當中,也在抽象其建模過程,感興趣的朋友可以加好友共同學習。
(1)監督學習和無監督學習
監督學習就是模型學習的數據需要有標簽,非監督學習就是模型學習的數據無需有標簽,那么什么是標簽呢?
舉個例子:下圖是心臟數據,其中ihealth特征含有兩個值,1代表患有心臟病,0代表沒有心臟病,當我們需要預測用戶是否患有心臟病時,因為有兩個結果,那就是一個二分類問題,ihealth就這個數據集的標簽特征。
每一列代表一個特征,每一行數據代表一個樣本,進入模型的數據需要保證主鍵唯一,主鍵通常是用戶的身份證號碼,編號或者手機號等唯一標識。
(2)訓練集,驗證集和預測集
通常情況下,會將完成特征工程和標簽工程的數據拆成三份:一份訓練數據,一份驗證數據,一份預測數據,其比例大概可以設為數據集的60%,20%和20%。訓練集用于訓練模型,驗證集用于驗證訓練集訓練模型效果,通過調參逐步提高驗證集上模型的預測效果,預測集用于判斷模型對于新數據是否有效,是否存在過擬合。
大概流程如下圖所示:
(3)欠擬合和過擬合
欠擬合是在驗證集上預測的效果不好,也就是沒有將我們希望分類的兩組數據分開。過擬合就是在驗證集上效果很好,但是預測真實數據時效果很不好。
如下圖所示:左一圖屬于欠擬合,因為并沒有將目標數據按照結果標簽很好的完成分類,彼此摻雜在一起;右一就是過擬合,為了把所有數據都分開,出現了一份非常復雜的曲線,因為太復雜,應用于新的數據時往往預測效果不好,當數據量很小時容易出現過擬合。
(4)算法模型的本質
算法的本質是一個函數,我們可以將模型想象成一個盒子,這個盒子有輸入和輸出,還有一些可以設置數值的面板,我們把數據扔入其中,通過不斷調整數值(模型參數),提升這個盒子預測結果的準確性,入下圖所示:
(5)樹模型和線性模型
線性模型是為所有進入模型的特征賦予權重,并相加出來一個新的值,樹模型是一個一個特征進行處理,常用的線性模型有邏輯回歸,SVM,常用的樹模型有XGBOOST,LIGHTGBM,隨機森林和GBDT。
線性模型相對來說具有更好的解釋性,而且處理小數據量時效果較好,樹模型做大數據量訓練速度快,模型預測效果較好,可解釋性不如線性模型,需要通過可視化的數據分樹來對模型解釋。
以邏輯回歸為例來簡單說明線性模型,其將所有特征賦予權重后加和變換為概率,這個這個概率通常稱為閾值,比如:模型預測得到閾值是0.6,通過數據分布我們設定閾值大于0.5為1,小于等于0.5為0,因為數值為0.6,顧我們判定預測結果為1。
以決策樹為例來說明樹模型,決策時類似于流程圖的樹形結構,樹內的每個節點代表對一個特征的分類預測,樹的每一葉子節點代表一個類別,為了訓練決策樹,我們需要使用訓練數據集并找出那個屬性對目標最有用。
(6)模型結果評估方法
因為二分類在應用中比較常見,我們以二分類為例來說明二分類的常用評估指標。評估二分類模型的最重要指標為auc,auc值越接近1模型的效果越好,auc為ROC曲線下的區域面積 。
精確率(precision):是精確性的度量,表示被分為正例的示例中實際為正例的比例,precision=TP/(TP+FP)
召回率(recall):是覆蓋面的度量,度量有多個正例被分為正例,recall=TP/(TP+FN)=TP/P=sensitive,可以看到召回率與靈敏度是一樣的。
正確率(accuracy):是我們最常見的評價指標,accuracy = (TP+TN)/(P+N),這個很容易理解,就是被分對的樣本數除以所有的樣本數,通常來說,正確率越高,分類器越好。
f1:是統計學中用來衡量二分類模型精確度的一種指標。它同時兼顧了分類模型的準確率和召回率。f1分數可以看作是模型準確率和召回率的一種加權平均,它的最大值是1,最小值是0。f1=2*precision*recall/(precision+recall)
根據模型效果可以將模型分成二分類模型,多分類模型,回歸模型,時間序列模型,聚類模型,推薦模型,筆者嘗試通過案例一句話介紹常用模型應用場景,并附上通俗易懂的拓展閱讀材料,幫助大家更深刻的理解這些模型可以如何應用。
二分類:可以把預測目標抽象成兩類,如預測是否患有心臟病,預測用戶對某個產品是否感興趣,可以將預測結果抽象成0和1。阿里PI平臺提供了心臟病預測案例https://help.aliyun.com/knowledge_detail/34929.html
多分類:可以把預測目標抽象成多個類別,如預測用戶年齡段等,一般情況會將多分類問題轉化成二分類處理。
回歸:預測某個時間點數值的模型,如預測房價,預測產品價格等。典型案例是預測波士頓房價。https://blog.csdn.net/Teresa_Xin/article/details/79204769
時間序列:預測某一段時間多個數值的模型,如預測未來一周每天股票價格,預測未來一段時間最高氣溫。
聚類:無監督學習,數據無需標簽,根據設定分組數自動進行分組,通過觀察分組數據特征給用戶分群打標,常用于用戶分群,案例青少年市場細分。http://cookdata.cn/note/view_static_note/201ad8d4a6c12768f7f79754a45e1b77/
推薦模型:經典推薦模型是協同過濾,協同過濾分為兩類,基于產品的協同過濾和基于用戶的協同過濾?;诋a品的協同過濾是用戶A喜歡蘋果,然后通過算法計算出其他水果與蘋果的相似度,然后進行推薦給A;基于用戶的協同過濾是用戶A喜歡蘋果,將同樣喜歡蘋果的用戶B喜歡的額其他產品推薦給A。推薦閱讀文章https://www.jianshu.com/p/e56665c54df8
不同類模型的常用算法如下圖所示,希望讀者們再看到這些抽象模型名字后莫慌,可以思考他們處理哪類,一步步思考如何應用。
二、機器學習項目流程
本章節分為兩部分,第一部分介紹機器學習為業務賦能類項目的常規流程,第二部分介紹常規的建模流程。
1. 機器學習為業務賦能流程
1.1 商業理解
明確商業問題和數據挖掘目標,需要通過與一線業務和運營人員溝通,深入理解商業問題的背景,同時對項目所需資源進行評估,這個階段就需要明確項目商業目標和成功的評估標準。實施要點,充分溝通調研,設定適合的機器學習應用場景。常見的場景有提升用戶復購,優化用戶推薦,預測用戶流失實施召回。本質來說,商業的核心問題就是增加收入、減少流失和人員提效。
注:機器學習類項目一定要與業務方或運營方深度合作,彼此參與,共同推進項目,因為業務的優化常常伴隨著KPI提高,人效提高常伴隨著裁員等業務擔心問題,可能面對很大阻礙。
1.2 數據理解
根據商業痛點和目標,梳理企業內部外數據,探索建模索要的目標變量,確定建模需要的數據,確定取數口徑,明確數據業務指標業務含義和指標使用規則。這個過程中算法同學需要深入介入業務中,理解各項業務指標含義,并根據業務的理解完成后續數據預處理和特征工程等操作。
注:必備的內外部數據獲取,需要保證許菊的一致性,完整性和準確性,數據理解階段觸目確定目標因子。
1.3 數據準備
將數據集合成大寬表或創建數據集市,對數據進行清洗,轉換,校驗數據質量,對數據進行標準化操作,需要使用科學的編碼規范指導編碼。該階段需要對數據缺失值,異常值進行處理。同時需要完成特征工程,特征工程是耗費時間最多的過程,一般情況,建模中花費特征工程耗費整個項目近80%的時間。
1.4 數據建模
選擇合適的模型算法技術,實現數據挖掘目標,通過樣本選取,確定訓練集,驗證集和預測集數據,該階段需要完成特征篩選,模型訓練和調參,模型預測評估,是否滿足目標。
注:特征數據決定了模型的上限效果,模型調參只是讓模型的效果趨向這個上限。二分類模型評估指標auc可以調優范圍很小,優化0.01都非常困難,在一些建模比賽中可能auc差異可能只有0.0001
1.5 模型評估
全面應用模型進行預測,判斷是否實現商業目標,通過科學的A/B測試,對目標場景進行模型應用,收集反饋效果,對預測效果進行評估分析,確定其統計有效性和真實有效性,判斷是否滿足商業目標。
1.6 模型部署
將驗證有效的模型應用于商業環境,并監控與維護模型,實時跟蹤模型效果,驗證商業目標達成情況,總結報告,積累經驗。
2. 常規建模流程
從業務系統或日志系統進行數據提取,數據預處理,特征工程,模型訓練和調優,預測和評估,如下圖所示。我們還是以心臟病的數據為例:我們從系統中導出歷史數據作為訓練數據,因為醫療數據很多都已經有標簽的,無需再次打標,后面會講解數據沒有標簽如何處理。
拿到數據后,第一步,進行預處理。處理缺失值和異常值問題,缺失值很容易理解,就是給那些沒數據特征填一個數值,簡單方法可以填充固定值(如-999),平均值,眾數或中位數等,復雜的方法可以利用XXX,填充相似數據特征的缺失值。
異常值是指將一些不靠譜的值提出,比如年齡數據,理論上是0-120,當年齡字段出現309時我們就需要將其調整到正常范圍,簡單的方法可以將其調整到上限,眾數或中位數等。
第二步,進行特征工程,因為算法模型本質就是數學,所以要把類別特征轉換成數值,比如原始數據中性別那一列中是男,女,那么我們就需要將其變成數值0,1,其中0代表男,1代表女。
one-hot特征編碼也是一種常見的處理特征的方法,如一個特征包含0,1,2三個數值,那么可以一特征拆成三個,分別用0,0,1代表0,用0,1,0代表1,用戶1,0,0代表2,也就是把不同的類別特征都用0和1去表示,還有很多其他方式,如結合業務規則構建特征,特征多項式交叉相乘,PCA降維等。
特征工程可以說是建模過程中最耗時的部分,算法工程師實際建模工作中將會有80-90%的時間花在特征工程階段。
第三步,模型訓練和調參。也就是將完成預處理和特征工程的數據接入模型,找到相對最優的模型參數,并基于訓練數據訓練處最優模型。
第四步,模型預測和評估。使用訓練好的模型跑驗證數據,查看預測效果,并根據模型效果繼續調參,經過更多輪循環找到最有模型參數。
第五步,模型應用和效果評估。使用歷史數據完成模型訓練和調優后我們需要應用到真實業務中,通過A/B測試查看模型的真實效果。
第六步,模型優化,隨著業務拓展和環境變化,可能產生新的特征,所以模型要進行持續調優。
注:應用不同類模型特征工程方法不同,如使用線性模型需要對數據做標準化或歸一化,統一不同特征量綱,而樹模型則無需進行這類操作。
三、模型應用實例概述
本章節通過三個典型案例介紹三類常用模型,同時介紹非專家用戶應用機器學習建模的難點,同時嘗試提供解決方案?,F在很多同類文章都包含了大量python實現代碼和數學模型分析,對于非專家用戶不太友好,筆者嘗試用流程介紹告知模型是如何應用,其中提到了如何進行簡單的特征工程操作。
1. 模型應用實例
1.1 二分類模型(邏輯回歸-泰坦尼克號預測生還概率)
泰坦尼克號生還實驗可謂是一個經典二分類預測,在kaggle平臺上一直開放,截止到2019年5月2日,共有11374個隊伍參加預測學習,訓練數據和預測數據為泰坦尼克號上的所有乘客基礎數據,訓練集包含819條數據,11個特征和1個標簽列,標簽列告知用戶是否生還,生還為1,去世了為0,預測數據包含了418條數據,11個特征,需要預測這418個人是否生還。
筆者嘗試使用組件化建模工具開始建模,過程如下:
首先進行訓練數據全表分析,查看缺失值情況,各特征的統計信息,其中cabin缺失率近80%刪除該特征,年齡特征也包含一定缺失值我們選擇填充年齡中位數。
對數值型特征進行異常特征平滑和歸一化,異常特征平滑就是將異常值填充固定值,所謂歸一化就是將數值型數據歸一到[0,1]中間,轉換函數為:x = (x-min)/(max-min)? 。
對類別特征進行類別特征編碼,對客艙等級,船票等級等類別特征進行onehot操作,并將處理完成后的數據分成訓練集,驗證集和預測集,使用邏輯回歸模型,進行自動調參運算,選擇最優參數后保存模型,將官方提供預測數據經過上述特征工程后接入最優模型,預測用戶是否生還,得到的結果是一個概率,也稱為閾值,當閾值大于0.5的則判定為1(生還),小于0.5判定為0(遇難),預測結果準確率為0.7799。
結果如下圖所示,結果表示再給我一條新的樣本,有78%概率可以準確預測用戶是生還還是遇難。
1.2 回歸模型(XGBOOST-預測波士頓房價)
前文中提到預測具體數值的模型可以稱為回歸預測,本案例也是經典回歸預測案例,數據集大家可以到UCI機器學習知識庫下載,波士頓房屋這些數據于1978年開始統計,共506個數據點,涵蓋了麻省波士頓不同郊區房屋14種特征的信息。包含城市人均犯罪率,住在用地所占比例,城鎮中非商業用地所占比例,CHAS查爾斯河虛擬變量,環保指數,沒懂住在的房間數等特征,標簽特征為自住房屋價格的中位數。
數據預處理和特征工程與二分類相似,回歸模型評估模型效果的指標有幾個,SSE,MSE,RMSE,R-square,這個案例中我們通過運算決定系數R-square來量化模型的表現,決定系數是回歸分析中十分常用的統計信息,經常被當作衡量模型預測能力好壞的標準。
R-square數值范圍從0至1,表示目標變量的預測值和實際值之間的相關程度平方的百分比。一個模型的R-square?值為0還不如直接用平均值來預測效果好,而一個R-square?值為1的模型則可以對目標變量進行完美的預測。從0至1之間的數值,則表示該模型中目標變量中有百分之多少能夠用特征來解釋。
1.3 聚類模型(Kmeans-聚類高中生分群)
聚類模型是無監督模型,我們以前文中提到青少年市場細分為例,通過對30000個美國高中生社交網絡信息數據集聚類,實現用戶分群聚類,按照前文中所使用的異常特征平滑,歸一化,類別特征編碼,onehot等步驟,完成數據預處理和特征工程,模型我們選用常用聚類模型K-means,我們選擇將數據聚成5類。
從結果來看我們將數據聚成了5組,如下圖所示:
因為沒有標簽,我們需要查看每一個聚類中心的變量取值從大到小進行排序。 通過觀察每個聚類前10個變量來分析聚類所代表的群體,所以我們需要通過分析聚類結果來確定分群用戶有哪些類似愛好和特點。
通常情況下,用戶分群可以基于規則認為設定,而聚類模型的聚類特征可以作為分類模型和回歸模型的特征接入模型。
舉例來說:當我們要基于用戶活躍度指標進行用戶分群時,我們可以考慮將所有跟活躍相關的特征作為訓練特征,然后設定分群數,通過聚類模型完成分群后分析分群數據特征,進而實現用戶打標。
2. 非專家用戶的門檻在哪里
2.1 不會寫代碼
寫代碼可以說是很多非程序員眼中巨大的門檻,其實python相比于大學時普遍學習的C或java簡單很多,大量的服務和實現已經封裝成包,通過import引用即可應用,現在很多小學都開始普及編程,很多少兒編程輔導機構可以讓孩子快速使用python完成深度學習,甚至實現玩具汽車的無人駕駛。
而且前文中提到,大量的可視化建模工具和自動化建模工具出現,這將極大降低AI技術應用的門檻。其實從前文中的建模流程不難看出,算法工程師也需要先熟悉業務才能開始建模,這部分來看,如果有工具可以解決建模過程那么業務人員對業務的理解將更加深刻。所以還是建議對這方面感興趣的同學可以打破心理枷鎖,咬牙學一下python,前10個小時可能很痛苦,但是掌握了后續就非常簡單了。
注:并不是算法同學不重要,真正高級的建模一定是結合業務理解和統計學知識的特征構建,而不是簡單聚合和轉換,組件化和自動學習可以讓企業快速應用模型,實現一定程度的提升,但是進一步的模型優化一定需要專業經驗的算法同學介入。
2.2 不會調參
模型有很多參數,如樹模型的樹的棵樹,樹的最大深度,學習率,隨機種子等,非數據學相關專業的同學看到可能直接懵逼,但是現在主流的建模平臺都提供了自動調參功能,自動學習工具甚至提供了根據上游數據結構進行自動調參,所以這部分不用恐懼,跟著樣例做幾次就知道了。
2.3 不會做特征工程
所謂特征工程是將特征日志或多系統數據“拍平”成模型可用的特征,并對特征進行各種變化拓展,通常算法工程師會將幾個業務特征拓展成幾百個特征,下面筆者簡單介紹一下特征如何“拍平”和拓展。
日志數據和業務數據通常是根據時間維度,多個主鍵列表,如電商訂單數據,用戶A可能有幾十條購買訂單記錄,建模的預測是對單個主鍵進行預測,所以需要將多條訂單“拍平”,也就是用戶A的手機號或者系統ID合成一條記錄,那么多條記錄如何合并呢?
這就是設計到特征拓展,比如可以設定一個時間段內用戶A的訂單數,購買總金額,購買A產品的數量,購買B產品的數量,單筆訂單最大支付金額,單筆訂單最小支付金額,訂單平均間隔,訂單最大間隔等,將單挑記錄通過最小,最大,平均等維度拍平后,需要對類別特征變換,常用的特征工程方法有類別特征編碼,onehot,離散化等操作。
類別特征編碼是指將業務類別特征變成數值,如使用優惠券滿減,直降和未使用可以標記為0,1,2;onehot編碼是將類別特征變成使用0和1表示的特征,如將上述優惠券一個特征變成了0,0,1和0,1,0,和1,0,0三個特征;離散化是指將連續的特征變成類別特征,如對年齡分段,0-10歲定為0,11-20定為1,以此類推,就可以對年齡特征變成一個類別特征,然后再做onebot。
注:數據拍平對于非專家用戶很難處理,但是我參與的項目已經找到了解決方案,可以將多張表根據關聯關系和數據類型自動化拍平成為模型可用特征,相信其他平臺也會提供這項服務,筆者認為,這是制約非專家用戶應用機器學習模型的一大門檻,和下文中提到的標簽工程類似。
2.4 不會做標簽工程
前文中提到的心臟病預測,泰坦尼克號生還預測,房價預測都是自帶標簽,但很多時候,數據中沒有辦法直接擁有這種分類或者數值屬性的標簽,通常使用滑窗法制作標簽。
如下圖所示,我們要預測7月份用戶是否有購買商品A的欲望,我們可以使用2,3,4月三個月的數據作為訓練數據,5月的數據作為標簽數據制作訓練集。因為5月份我們知道用戶是否購買了A產品,然后再用3,4,5三個月的數據作為訓練數據,通過6月份用戶是否購買A產品作為標簽,這樣我們可以用歷史數據完成模型訓練,然后應用于對用戶7月份是否購買某商品的預測。
四、AI項目立項模板
1. 商業痛點分析及目標分解
如前文所述,在啟動AI項目之前,要梳理商業邏輯,分析現有的痛點,將痛點拆解為目標,模型圍繞目標去構建。常見的目標有提升營銷效率,實現精準化營銷,減少用戶干擾,減少用戶流失,提升轉化率,提升ROI等。
筆者發現所有的AI項目都會涉及到用戶或客戶畫像,因為構建模型的特征一版包含三部分:一部分是用戶的靜態信息,一部分是用戶的行為和交易信息,一部分是用戶應用的場景信息。
而用戶的景泰信息和一些行為信息都可以抽象為用戶畫像,所以很多AI項目的目標還包括為用戶或客戶構建畫像,便于產品和運營方更加理解自己的服務對象。
2. 項目架構
利用機器學習的項目架構類似,大家可以參考CDP系統項架構來完成項目的整體架構設計,筆者簡單結合自己的理解簡單搭建一個項目架構作為參考。
3. 技術架構
筆者與工程同學和算法同學溝通,了解到一些建模平臺的底層技術,構架如下圖所示。
Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。Hadoop實質上更多是一個分布式數據基礎設施: 它將巨大的數據集分派到一個由普通計算機組成的集群中的多個節點進行存儲,意味著您不需要購買和維護昂貴的服務器硬件。
Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可為上層應用提供統一的資源管理和調度。
Spark,是一個專門用來對分布式存儲的大數據進行處理的工具,它并不會進行分布式數據的存儲。
Hbase是Hadoop database,即Hadoop數據庫。它是一個適合于非結構化數據存儲的數據庫,HBase基于列的而不是基于行的模式。
Hive基于數據倉庫,提供靜態數據的動態查詢。其使用類SQL語言,底層經過編譯轉為MapReduce程序,在Hadoop上運行,數據存儲在HDFS上。
4. 項目規劃
通常來說機器學習類項目一期多為構建用戶畫像,二期結合畫像和用戶標簽體系構建模型,設計試運行策略,根據實際效果對模型進行調優??梢愿鶕煌臉I務痛點構建多個模型,逐步構建起一整套模型體系,輔助決策。
5. 應用場景
結合具體應用場景,描述如何將模型嵌入到現有業務流程當中。
6. 模型效果評估方法
模型的實際效果可以通過A/B測試進行驗證,選擇兩組用戶:一組保持原有運營或產品策略,一組使用機器學習模型推薦策略,通過一個業務周期的觀察,對比兩組用戶的效果評估指標變化。
因為部分內容涉及公司業務,不便于舉例說明,文中多數案例均為初學者常見案例,大家可以搜索到相關內容。
本文僅將筆者近一年的收獲和思考進行梳理總結,希望對各位讀者有所幫助。筆者還在學習深度學習,NLP,推薦系統等相關AI知識,AI產品經理當下來看屬于產品經理全新的一個細分門類,希望可以與同行們多多交流學習~
#專欄作家#
田宇洲(微信公眾號:言之有術),人人都是產品經理專欄作家,北京大學軟件工程管理碩士,北京電信4年產品經理,負責B2B電商平臺的前后端產品設計,擅長游戲化產品設計,挖掘用戶畫像。
本文原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自 Unsplash,基于 CC0 協議
受教了
可以轉載么???
微信嗎?可以轉載,給我公眾號,我給你開白名單
感謝分享
受教了!
之前看別人寫的都是假大空的內容,看這篇文章后有不少收獲,求帶!怎么聯系您
加微信吧PMandytian