現(xiàn)在機(jī)器學(xué)習(xí)應(yīng)用越來(lái)越流行,了解機(jī)器學(xué)習(xí)項(xiàng)目的流程,能幫助我們更好的使用機(jī)器學(xué)習(xí)工具來(lái)處理實(shí)際問(wèn)題。
1 理解實(shí)際問(wèn)題,抽象為機(jī)器學(xué)習(xí)能處理的數(shù)學(xué)問(wèn)題
理解實(shí)際業(yè)務(wù)場(chǎng)景問(wèn)題是機(jī)器學(xué)習(xí)的第一步。
機(jī)器學(xué)習(xí)的特征工程和模型訓(xùn)練通常都是一件非常耗時(shí)的過(guò)程,胡亂嘗試時(shí)間成本是非常高的。深入理解要處理的問(wèn)題,能避免走很多彎路。
理解問(wèn)題,包括明確可以獲得什么樣的數(shù)據(jù),機(jī)器學(xué)習(xí)的目標(biāo)是一個(gè)分類(lèi)、回歸還是聚類(lèi)。如果都不是的話,要考慮將它們轉(zhuǎn)變?yōu)闄C(jī)器學(xué)習(xí)問(wèn)題。
2 獲取數(shù)據(jù)
獲取數(shù)據(jù)包括獲取原始數(shù)據(jù)以及從原始數(shù)據(jù)中經(jīng)過(guò)特征工程從中提取訓(xùn)練、測(cè)試數(shù)據(jù)。機(jī)器學(xué)習(xí)比賽中原始數(shù)據(jù)都是直接提供的,但是實(shí)際問(wèn)題需要自己獲得原始數(shù)據(jù)。
“ 數(shù)據(jù)決定機(jī)器學(xué)習(xí)結(jié)果的上限,而算法只是盡可能的逼近這個(gè)上限”,可見(jiàn)數(shù)據(jù)在機(jī)器學(xué)習(xí)中的作用。總的來(lái)說(shuō)數(shù)據(jù)要有具有“代表性”,否則必然會(huì)過(guò)擬合。對(duì)于分類(lèi)問(wèn)題,數(shù)據(jù)偏斜不能過(guò)于嚴(yán)重,不同類(lèi)別的數(shù)據(jù)數(shù)量不要有數(shù)個(gè)數(shù)量級(jí)的差距。
不僅如此還要對(duì)評(píng)估數(shù)據(jù)(樣本數(shù)量、特征數(shù)量)的量級(jí),估算出其對(duì)內(nèi)存的消耗程度,判斷訓(xùn)練過(guò)程中內(nèi)存是否能夠放得下。如果數(shù)據(jù)量太大可以考慮改進(jìn)算法或者減少訓(xùn)練樣本、降維的技巧了,如果數(shù)據(jù)量實(shí)在太大,那就要考慮分布式了。
3 特征工程
特征工程是非常能體現(xiàn)一個(gè)機(jī)器學(xué)習(xí)者的功底的。
特征工程包括從原始數(shù)據(jù)中特征構(gòu)建、特征提取、特征選擇,非常有講究。深入理解實(shí)際業(yè)務(wù)場(chǎng)景下的問(wèn)題,豐富的機(jī)器學(xué)習(xí)經(jīng)驗(yàn)?zāi)軒椭覀兏玫奶幚硖卣鞴こ獭?b>特征工程做的好能發(fā)揮原始數(shù)據(jù)的最大效力,往往能夠使得算法的效果和性能得到顯著的提升,有時(shí)能使簡(jiǎn)單的模型的效果比復(fù)雜的模型效果好。
數(shù)據(jù)預(yù)處理、數(shù)據(jù)清洗是很關(guān)鍵的步驟,往往能夠使得算法的效果和性能得到顯著提高。歸一化、離散化、因子化、缺失值處理、去除共線性等,數(shù)據(jù)挖掘過(guò)程中很多時(shí)間就花在它們上面。這些工作簡(jiǎn)單可復(fù)制,收益穩(wěn)定可預(yù)期,是機(jī)器學(xué)習(xí)的基礎(chǔ)必備步驟。
篩選出顯著特征、摒棄非顯著特征,需要機(jī)器學(xué)習(xí)工程師反復(fù)理解業(yè)務(wù)。這對(duì)很多結(jié)果有決定性的影響。特征選擇需要運(yùn)用特征有效性分析的相關(guān)技術(shù),如相關(guān)系數(shù)、卡方檢驗(yàn)、平均互信息、條件熵、后驗(yàn)概率、邏輯回歸權(quán)重等方法。
4 模型訓(xùn)練、診斷與調(diào)優(yōu)
現(xiàn)在有很多的機(jī)器學(xué)習(xí)算法的工具包,例如sklearn,使用非常方便,真正考驗(yàn)水平的根據(jù)對(duì)算法的理解調(diào)節(jié)(超)參數(shù),使模型達(dá)到最優(yōu)。
過(guò)擬合、欠擬合的模型狀態(tài)判斷是模型診斷中至關(guān)重要的一步。常見(jiàn)的方法如:交叉驗(yàn)證,繪制學(xué)習(xí)曲線等。過(guò)擬合的基本調(diào)優(yōu)思路是增加訓(xùn)練的數(shù)據(jù)量,降低模型復(fù)雜度。欠擬合的基本調(diào)優(yōu)思路是提高特征數(shù)量和質(zhì)量,增加模型復(fù)雜度。?
診斷后的模型需要進(jìn)行進(jìn)一步調(diào)優(yōu),調(diào)優(yōu)后的新模型需要重新診斷,這是一個(gè)反復(fù)迭代不斷逼近的過(guò)程,需要不斷的嘗試,進(jìn)而達(dá)到最優(yōu)的狀態(tài)。
5 模型驗(yàn)證、誤差分析
模型驗(yàn)證和誤差分析也是機(jī)器學(xué)習(xí)中非常重要的一步。
通過(guò)測(cè)試數(shù)據(jù),驗(yàn)證模型的有效性,通過(guò)觀察誤差樣本,分析誤差產(chǎn)生的原因(是參數(shù)的問(wèn)題還是算法選擇的問(wèn)題,是特征的問(wèn)題還是數(shù)據(jù)本身的問(wèn)題 …),往往能使得我們找到提升算法性能的突破點(diǎn)。
誤差分析主要是分析出誤差來(lái)源于 算法 、 特征 、數(shù)據(jù)。
6 模型融合
?一般來(lái)說(shuō)實(shí)際中,成熟的機(jī)器算法也就那么些,工程上,提升算法的準(zhǔn)確度主要方法是模型的前端(特征工程、清洗、預(yù)處理、采樣)和后端的模型融合。因?yàn)樗麄儽容^標(biāo)準(zhǔn)可復(fù)制,效果比較穩(wěn)定。而直接調(diào)參的工作不會(huì)很多,畢竟大量數(shù)據(jù)訓(xùn)練起來(lái)太慢了,而且效果難以保證。
模型融合的方法,主要包括一人一票的統(tǒng)一融合,線性融合和堆融合。
在機(jī)器學(xué)習(xí)中模型融合非常常見(jiàn),基本都能使得效果有一定的提升,而且效果很好。
7 上線運(yùn)行
這一部分內(nèi)容主要跟工程實(shí)現(xiàn)的相關(guān)性比較大。工程上是結(jié)果導(dǎo)向,模型在線上運(yùn)行的效果直接決定模型的成敗。不單純包括其準(zhǔn)確程度、誤差等情況,還包括其運(yùn)行的速度(時(shí)間復(fù)雜度)、資源消耗程度(空間復(fù)雜度)、穩(wěn)定性是否可接受。
這些工作流程主要是工程實(shí)踐上總結(jié)出的一些經(jīng)驗(yàn),并不是每個(gè)項(xiàng)目都包含完整的一個(gè)流程。這里的部分只是一個(gè)指導(dǎo)性的說(shuō)明,只有大家自己多實(shí)踐,多積累項(xiàng)目經(jīng)驗(yàn),才會(huì)有自己更深刻的認(rèn)識(shí)。?
參考
機(jī)器學(xué)習(xí)項(xiàng)目流程 http://www.cnblogs.com/wxquare/p/5484690.html