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