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