以下首先闡述機(jī)器學(xué)習(xí)的基本過(guò)程,羅列了幾個(gè)主要流程和關(guān)鍵要素;繼而展開介紹機(jī)器學(xué)習(xí)主要的算法框架,包括監(jiān)督學(xué)習(xí)算法,無(wú)監(jiān)督學(xué)習(xí)算法和常用的降維,特征選擇算法等;最后在業(yè)務(wù)實(shí)踐的過(guò)程中,給出了一個(gè)可行的項(xiàng)目管理流程,可供參考。
1.基本過(guò)程
1.1機(jī)器學(xué)習(xí)的五步流程
如果把機(jī)器學(xué)習(xí)當(dāng)做一個(gè)閉環(huán)的工作項(xiàng)來(lái)看待的話,會(huì)發(fā)現(xiàn)其實(shí)它的整個(gè)流程,跟我們?nèi)粘I钪凶銎渌氖虑槭钱惽さ模热缱鲆粋€(gè)ABtest,做一次競(jìng)品分析,或者寫一個(gè)量化策略。只是在其基本過(guò)程里,我們所要考慮的問(wèn)題點(diǎn),所采用的工具和方法有所不同而已。
以下參考達(dá)里歐的五步流程法,嘗試將機(jī)器學(xué)習(xí)的基本過(guò)程也簡(jiǎn)化為五個(gè)環(huán)節(jié)。
01確定目標(biāo)
機(jī)器學(xué)習(xí)的目標(biāo)并不在于機(jī)器學(xué)習(xí),而在于我們將這種方法應(yīng)用到現(xiàn)實(shí)場(chǎng)景,去解決現(xiàn)實(shí)的問(wèn)題點(diǎn)。所以在工作開始之前,我們需要想清楚自己是要實(shí)現(xiàn)何種目標(biāo),比如是要對(duì)流失用戶進(jìn)行風(fēng)險(xiǎn)預(yù)警,對(duì)潛在付費(fèi)用戶進(jìn)行意愿評(píng)估,還是對(duì)信貸用戶進(jìn)行欺詐識(shí)別。
02診斷問(wèn)題
因?yàn)槊鞔_了所要實(shí)現(xiàn)的目標(biāo),所以可以根據(jù)現(xiàn)實(shí)基礎(chǔ)來(lái)診斷問(wèn)題。為了實(shí)現(xiàn)這個(gè)目標(biāo),需要機(jī)器學(xué)習(xí)給到怎樣的輸出,單純的0-1標(biāo)簽即可,還是需要連續(xù)的風(fēng)險(xiǎn)概率;目前的數(shù)據(jù)量是否能支撐這個(gè)項(xiàng)目,業(yè)務(wù)樣本的黑白比例是否不夠均衡,這些問(wèn)題都是需要診斷的。
03方案設(shè)計(jì)
明確了要實(shí)現(xiàn)的目標(biāo),也了解了現(xiàn)實(shí)基礎(chǔ)里存在的問(wèn)題點(diǎn),便可以展開方案設(shè)計(jì)。在這個(gè)細(xì)分的業(yè)務(wù)場(chǎng)景下,適合選用哪一類型的算法,不同算法往往是為不同領(lǐng)域而生的;在這個(gè)場(chǎng)景下,如果沒(méi)有明確的黑白樣本,需要基于何種方法來(lái)進(jìn)行樣本定義。在方案設(shè)計(jì)的環(huán)節(jié),需要給出一個(gè)工作開展的大的方向,相當(dāng)于把時(shí)間和精力限制在一個(gè)合適的框架中。
04方案執(zhí)行
在方案執(zhí)行的過(guò)程中遇到問(wèn)題時(shí),如何進(jìn)行解決,也是很重要的環(huán)節(jié)。機(jī)器學(xué)習(xí)算法的執(zhí)行,一般稱之為最優(yōu)化的過(guò)程,即在一個(gè)算法框架下,如何最快地達(dá)到最優(yōu)的結(jié)果。而針對(duì)整個(gè)方案的執(zhí)行,又會(huì)包括數(shù)據(jù)準(zhǔn)備,特征工程,算法調(diào)試,模型評(píng)估等具體事項(xiàng),每一個(gè)事項(xiàng)相互獨(dú)立,各有各的方法論,但又相互影響,上下游之間的執(zhí)行效果環(huán)環(huán)相扣。
05評(píng)估迭代
評(píng)估的過(guò)程,其實(shí)就是一個(gè)目標(biāo)量化的過(guò)程,因?yàn)橛辛肆炕杂辛私^對(duì)意義上的效果優(yōu)劣。只是不同的業(yè)務(wù)目標(biāo),不同的模型框架,對(duì)應(yīng)的評(píng)估體系是不一樣的。建立一套合適的評(píng)估方式,機(jī)器學(xué)習(xí)項(xiàng)目也就實(shí)現(xiàn)了閉環(huán),可以在迭代中去逐步逼近要實(shí)現(xiàn)的業(yè)務(wù)目標(biāo)。
1.2機(jī)器學(xué)習(xí)的關(guān)鍵要素
01機(jī)器學(xué)習(xí)三要素
如同勞動(dòng)力,資本,土地等是經(jīng)濟(jì)學(xué)的基本要素一樣,其實(shí)機(jī)器學(xué)習(xí)也有自己的三要素,即數(shù)據(jù),算法和模型,它們?nèi)币徊豢桑嗷リP(guān)聯(lián),并貫穿于工作的整個(gè)過(guò)程。人們說(shuō)機(jī)器學(xué)習(xí)的過(guò)程,就是準(zhǔn)備好充足的數(shù)據(jù),應(yīng)用合適的算法,去生成優(yōu)良的模型的過(guò)程。
02其它關(guān)鍵要點(diǎn)
除了機(jī)器學(xué)習(xí)三要素外,其實(shí)也有其它的一些點(diǎn)是相當(dāng)重要的,比如特征處理,優(yōu)化算法,和模型評(píng)估等。缺少了這些內(nèi)容,其實(shí)模型也能生成,但只能是大打折扣地生成。特征處理決定了模型性能的上限,優(yōu)化算法讓我們以最好的方式去逼近模型性能的上限,而模型評(píng)估則定義了什么是我們到底在討論什么樣的模型性能,它們是機(jī)器學(xué)習(xí)項(xiàng)目的“加速器”。
2.監(jiān)督學(xué)習(xí)
監(jiān)督學(xué)習(xí)要處理的是有標(biāo)簽的數(shù)據(jù),即業(yè)務(wù)場(chǎng)景里有絕對(duì)的黑白,明確的好壞,比如在信貸風(fēng)控的場(chǎng)景下,逾期了就是逾期了,在金融市場(chǎng)的場(chǎng)景下,漲跌也都是界限分明的。通過(guò)對(duì)歷史數(shù)據(jù)的學(xué)習(xí),從而給當(dāng)前的數(shù)據(jù)一個(gè)離散的標(biāo)簽,或者連續(xù)的數(shù)值結(jié)果。
2.1線性模型
線性模型的出發(fā)點(diǎn)很簡(jiǎn)單,就是考慮一個(gè)事情成立的多個(gè)因素,比如ABCDE五個(gè)因素,每個(gè)因素又有各自的權(quán)重,權(quán)衡過(guò)各個(gè)因素后,才做出最后的決策。將這個(gè)想法轉(zhuǎn)化為數(shù)學(xué)的表達(dá),也就有了因變量,自變量,系數(shù),偏置這些概念,從而組成了線性模型。
線性模型也可以很復(fù)雜,有很長(zhǎng)的歷史,很多的變體。其中最經(jīng)典的形式,是在線性基礎(chǔ)上添加一個(gè)Sigmoid函數(shù),從而將線性輸出轉(zhuǎn)化為概率,并進(jìn)一步轉(zhuǎn)化為黑白標(biāo)簽,也就是邏輯回歸。在傳統(tǒng)金融場(chǎng)景的評(píng)分卡領(lǐng)域里,邏輯回歸的應(yīng)用是非常廣泛和深入的。
2.2決策樹
決策樹的思想可以用四個(gè)字來(lái)概括,即分而治之。線性模型的因素考慮,是相互并列的,權(quán)重各異的,但決策樹里不是如此。決策樹里的因素是串行的,即先考慮A因素,隨后針對(duì)A因素中的各種情況,繼續(xù)考慮新的因素,循環(huán)往復(fù),形成了一組決策鏈路,即決策樹。
所以決策樹里面最重要的問(wèn)題,便是在當(dāng)前這個(gè)節(jié)點(diǎn),我應(yīng)該考慮何種因素,去繼續(xù)推進(jìn)這個(gè)決策的制定。為了解決這個(gè)問(wèn)題,決策樹引入了計(jì)算機(jī)領(lǐng)域里信息熵的概念,經(jīng)過(guò)推演,有了最大增益和增益率這些指標(biāo),對(duì)應(yīng)了ID3和C4.5這兩種經(jīng)典的決策樹范式。后來(lái)又通過(guò)引入基尼系數(shù),作為因素選擇的判斷條件,從而生成了CART決策樹。
2.3貝葉斯
貝葉斯學(xué)派和頻率學(xué)派之間的爭(zhēng)辯,很像是物理學(xué)里波粒之爭(zhēng),數(shù)學(xué)家們爭(zhēng)執(zhí)于參數(shù)到底存不存在,物理學(xué)家們則爭(zhēng)執(zhí)于光到底是波還是粒子。波粒之爭(zhēng)最終通過(guò)波粒二象性的理論而宣告結(jié)局,但貝葉斯和頻率學(xué)派的爭(zhēng)執(zhí)并沒(méi)有結(jié)束,繼續(xù)在不同的時(shí)代里各領(lǐng)風(fēng)騷。
頻率學(xué)派相信存在著一個(gè)客觀實(shí)體(參數(shù)),所以要做的就是盡可能地去擬合和逼近這個(gè)參數(shù),比如最大似然估計(jì)。貝葉斯學(xué)派則拒絕相信這一套,他們堅(jiān)持我看見(先驗(yàn)概率),我思考(后驗(yàn)概率),我決策(貝葉斯模型)。貝葉斯理論廣泛應(yīng)用于文本處理的領(lǐng)域,生成了諸多經(jīng)典模型,根據(jù)因素之間的獨(dú)立性差異,產(chǎn)生了樸素貝葉斯及其它多種貝葉斯算法。
2.4支持向量機(jī)
支持向量機(jī)是追求極致的,它要在所有的可行解里面,找到唯一的最優(yōu)解。在二維平面里,這個(gè)解是一條唯一的線,在三維空間里,這個(gè)解是一個(gè)唯一的面,那么,在N維空間里,這個(gè)解就是唯一的超平面了。而用于尋找這個(gè)解的樣本點(diǎn),就稱之為支持向量。
核函數(shù)是支持向量機(jī)里的大殺器,與人們所說(shuō)的“降維打擊”類似,核函數(shù)是要通過(guò)升維的方式去解決問(wèn)題。如果在當(dāng)下的困境里找不到答案,那就嘗試在更高的維度里去破局。
神經(jīng)網(wǎng)絡(luò)引入了生物學(xué)里神經(jīng)元的概念。每一個(gè)神經(jīng)元都是簡(jiǎn)單的,有輸入和權(quán)重,有閾值和輸出,但是用眾多神經(jīng)元搭建起多層網(wǎng)絡(luò),網(wǎng)絡(luò)之間又相互聯(lián)系時(shí),這個(gè)問(wèn)題就變得復(fù)雜了。在2006年后,神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)身為深度學(xué)習(xí),成就了無(wú)數(shù)或神秘或偉大的商業(yè)故事。
在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程中,有一個(gè)很有意思的事情,就是局部最優(yōu)和全局最優(yōu)。模型訓(xùn)練中容易陷入局部最優(yōu)的困境,停止搜索最優(yōu)解,就像我們很多時(shí)候做事情,只是做好了,但是并不夠好。為了解決這個(gè)問(wèn)題,人們?cè)O(shè)計(jì)了模擬退火,隨機(jī)梯度下降等多種訓(xùn)練策略。
2.6集成學(xué)習(xí)
集成學(xué)習(xí)的理念,是“好而不同”。對(duì)于一個(gè)問(wèn)題,如果通過(guò)單一模型始終給不出最優(yōu)解,不如集成幾個(gè)好而不同的子模型,可能會(huì)獲得性能優(yōu)異的效果。三個(gè)臭皮匠,勝過(guò)諸葛亮。每個(gè)臭皮匠都有不足,但各有各的優(yōu)點(diǎn),而諸葛亮作為單一模型已是極致,卻仍有局限。
集成學(xué)習(xí)有兩個(gè)分支,如果子模型串行生成,則是Boost,如果子模型并行生成,則是Bagging。Boost強(qiáng)調(diào)的是一個(gè)一個(gè)上,針對(duì)前一個(gè)子模型的缺陷,通過(guò)下一個(gè)子模型去補(bǔ)足,xgBoost和GBDT都是其中的代表;Bagging強(qiáng)調(diào)的則是一起上,群架好過(guò)單挑,通過(guò)學(xué)習(xí)不同的樣本,生成不同的子模型。Bagging的一個(gè)變體隨機(jī)森林,便是這一類模型的優(yōu)秀代表。
3.無(wú)監(jiān)督學(xué)習(xí)
監(jiān)督學(xué)習(xí)處理的是有標(biāo)簽的數(shù)據(jù),無(wú)監(jiān)督學(xué)習(xí)要處理的則是無(wú)標(biāo)簽的數(shù)據(jù)。正是因?yàn)闆](méi)有了這個(gè)絕對(duì)的標(biāo)簽,所以會(huì)更側(cè)重與數(shù)據(jù)本身的信息和結(jié)構(gòu),對(duì)于模型所得結(jié)果的合理性,也會(huì)有更豐富和更精細(xì)的評(píng)估。以下主要介紹一些不同類型的聚類算法。
3.1基于原型
基于原型的聚類,強(qiáng)調(diào)在數(shù)據(jù)中存在著某種確定性的結(jié)構(gòu),不同類別的結(jié)構(gòu),應(yīng)該是不一樣的。K-means是原型聚類中的經(jīng)典代表,它相信數(shù)據(jù)中存在著K個(gè)中心點(diǎn),通過(guò)迭代更新這K個(gè)中心點(diǎn)的位置,從而將所有樣本點(diǎn)劃分進(jìn)K個(gè)原型里面,直至迭代結(jié)束。
3.2基于密度
基于密度的聚類,強(qiáng)調(diào)如果在數(shù)據(jù)中存在一個(gè)類別,那么這個(gè)類別里的樣本點(diǎn)之間,是存在一定的緊密程度的,如果不具有的話,那就是屬于其它類別。DBSCAN是這一類算法中的代表,它與K-means的不同在于,不預(yù)先假設(shè)K個(gè)中心,而是先尋找一個(gè)類別,獲取這個(gè)類別所有的樣本點(diǎn),再在剩余的數(shù)據(jù)集里,尋找下一個(gè)類別,直到所有樣本都找到類別。
3.3基于層次
基于層次的聚類,則是從一個(gè)更為立體的角度,對(duì)樣本點(diǎn)進(jìn)行自底向上的逐層的劃分。AGENS是這一種算法里的代表,在第一層里,它將所有樣本點(diǎn)當(dāng)做是一個(gè)初始類別,通過(guò)計(jì)算類別之間的距離,不斷的進(jìn)行合并,從而在最后一層里保留下指定個(gè)數(shù)的類別。
相對(duì)于監(jiān)督學(xué)習(xí),無(wú)監(jiān)督學(xué)習(xí)沒(méi)有了標(biāo)簽的羈絆,反而成為了一個(gè)更為開放的場(chǎng)景,出現(xiàn)了一大批的形態(tài)各異的算法。但這些不同類型的聚類算法,仍要去討論一些共同的問(wèn)題,比如如何去度量聚類結(jié)果的性能,這里又分為外部指標(biāo)和內(nèi)部指標(biāo);比如如何去計(jì)算樣本點(diǎn)之間的距離,基于不同維度,閔氏距離可以分為曼哈頓距離,歐氏距離,和切比雪夫距離。
4.其它算法
除了監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)外,有一些算法雖不直接生成具體的模型,但仍然是我們?cè)跀?shù)據(jù)探索,模型訓(xùn)練等過(guò)程中所必不可少的,比如降維算法,特征選擇算法等。
4.1降維
數(shù)據(jù)之中的方差,被當(dāng)做是一種信息的表達(dá)方式。如果對(duì)當(dāng)前的數(shù)據(jù)集進(jìn)行重構(gòu),用少量的幾個(gè)特征來(lái)提取數(shù)據(jù)集所包含的大量信息,便是降維的理念,其中的優(yōu)秀代表是PCA。為實(shí)現(xiàn)一個(gè)業(yè)務(wù)目標(biāo),我們從現(xiàn)實(shí)世界中收集的數(shù)據(jù),往往不是最優(yōu)的表達(dá),它們可能有重復(fù),有冗余,通過(guò)降維的方式,可以對(duì)這些原始數(shù)據(jù)進(jìn)行重構(gòu),生成一個(gè)更好的數(shù)據(jù)表達(dá)。
4.2特征選擇
機(jī)器學(xué)習(xí)算法,是用來(lái)炒菜的,但是你要選擇哪些食材去炒,本身也是一個(gè)問(wèn)題點(diǎn)。要做一份揚(yáng)州炒飯,肯定不會(huì)把廚房里的材料全都加上,也不可能拿一把青菜和米飯就下鍋翻炒,如何選擇食材,便是特征選擇的領(lǐng)域。過(guò)濾式方法中,特征選擇和模型訓(xùn)練是相互獨(dú)立的,互不干擾;包裹式方法中,模型性能則是特征選擇效果的參考,兩者相互影響;除此之外,還有嵌入式的選擇方法。數(shù)據(jù)處理和特征選擇的效果,往往會(huì)決定模型性能的上限值。
5.實(shí)踐過(guò)程
業(yè)務(wù)實(shí)踐的過(guò)程,往往是一個(gè)追求“工業(yè)化”的過(guò)程,要求所做的事情要契合實(shí)際情況,要可實(shí)現(xiàn)和可復(fù)用。在這個(gè)過(guò)程里,人們往往喜歡用一套固定的框架去規(guī)范自己所做的工作,這個(gè)框架的缺點(diǎn)是相對(duì)呆板,限制了一些自由度,但好處是能有一個(gè)清晰可見的進(jìn)度條,有利于項(xiàng)目的管理和推進(jìn)。筆者在此分享一個(gè)曾用過(guò)的可行的管理框架,可供參考。
5.1場(chǎng)景分析
除了一些火燒眉毛的緊急事項(xiàng)外,對(duì)于工作中多數(shù)不那么緊迫的事情來(lái)說(shuō),可以給自己預(yù)留一個(gè)場(chǎng)景分析的過(guò)程。相當(dāng)于在做一個(gè)事情之前,先跳出這個(gè)事情,思考其周邊與其相互關(guān)聯(lián),可能決定其是否能成立的種種條件,然后再選擇一頭扎進(jìn)這個(gè)場(chǎng)景之中。
在場(chǎng)景分析的過(guò)程中,要對(duì)細(xì)分的業(yè)務(wù)場(chǎng)景進(jìn)行梳理,基于業(yè)務(wù)目標(biāo),評(píng)估機(jī)器學(xué)習(xí)建模的可行性和可復(fù)用性。如果業(yè)務(wù)目標(biāo)清晰,機(jī)器學(xué)習(xí)的方式也合適的話,就去建模吧。
5.2數(shù)據(jù)準(zhǔn)備
數(shù)據(jù)是一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目的原材料,相當(dāng)于做菜的食材,蓋樓的地基,不可謂不重要。在數(shù)據(jù)準(zhǔn)備的過(guò)程中,要看現(xiàn)實(shí)中能擁有幾個(gè)數(shù)據(jù)來(lái)源,它們共同組成了一個(gè)怎樣的數(shù)據(jù)廣度;要基于業(yè)務(wù)目標(biāo),鋪開一套因子指標(biāo)體系,看其中有哪些是可實(shí)現(xiàn)的;同時(shí)對(duì)于最終獲取到的數(shù)據(jù),也需要進(jìn)行質(zhì)量分析,如完整度,異常值等,并展開基礎(chǔ)的數(shù)據(jù)預(yù)處理工作。
5.3模型開發(fā)
模型開發(fā)的工作,其實(shí)才是真正意義上屬于生產(chǎn)的過(guò)程。首先需要了解所選算法的基本原理,從而展開后續(xù)的處理工作,比如通過(guò)特征工程把源數(shù)據(jù)轉(zhuǎn)化為模型可讀取的數(shù)據(jù);通過(guò)成熟的機(jī)器學(xué)習(xí)平臺(tái)或框架,進(jìn)行模型訓(xùn)練和生成,并在投產(chǎn)前進(jìn)行模型評(píng)估和驗(yàn)證。
5.4模型應(yīng)用
模型生成之后,其實(shí)只是在技術(shù)意義上的生成,并非是業(yè)務(wù)意義上的可用。比如信用風(fēng)險(xiǎn)模型輸出了一個(gè)概率,這個(gè)概率如何應(yīng)用到不同的用戶群體中,這里就需要結(jié)合一套具體的業(yè)務(wù)策略體系。模型的應(yīng)用過(guò)程,便是在模型輸出到業(yè)務(wù)輸出之間的一道橋梁。
5.5模型部署
經(jīng)過(guò)了評(píng)估和驗(yàn)收,如果模型性能達(dá)到了預(yù)期的效果,則可進(jìn)入模型部署和任務(wù)調(diào)度的階段。但模型的部署上線,并不是一勞永逸的事情,在投產(chǎn)之后,仍要進(jìn)行跟蹤和監(jiān)控,比如模型性能的變化,覆蓋人群的穩(wěn)定性等,如果觸發(fā)了變更條件,則要進(jìn)行模型的優(yōu)化工作。
責(zé)任編輯人:CC
評(píng)論