現(xiàn)在機器學習應用非常流行,了解機器學習項目的流程,能幫助我們更好的使用機器學習工具來處理實際問題。
1. 理解實際問題,抽象為機器學習能處理的數(shù)學問題
理解實際業(yè)務場景問題是機器學習的第一步,機器學習中特征工程和模型訓練都是非常費時的,深入理解要處理的問題,能避免走很多彎路。理解問題,包括明確可以獲得的數(shù)據(jù),機器學習的目標是分類、回歸還是聚類。如果都不是的話,考慮將它們轉變?yōu)闄C器學習問題。參考機器學習分類能幫助從問題提煉出一個合適的機器學習方法。
2. 獲取數(shù)據(jù)獲取數(shù)據(jù)包括獲取原始數(shù)據(jù)以及從原始數(shù)據(jù)中經過特征工程從原始數(shù)據(jù)中提取訓練、測試數(shù)據(jù)。機器學習比賽中原始數(shù)據(jù)都是直接提供的,但是實際問題需要自己獲得原始數(shù)據(jù)。“ 數(shù)據(jù)決定機器學習結果的上限,而算法只是盡可能的逼近這個上限”,可見數(shù)據(jù)在機器學習中的作用??偟膩碚f數(shù)據(jù)要有具有“代表性”,對于分類問題,數(shù)據(jù)偏斜不能過于嚴重,不同類別的數(shù)據(jù)數(shù)量不要有數(shù)個數(shù)量級的差距。不僅如此還要對評估數(shù)據(jù)的量級,樣本數(shù)量、特征數(shù)量,估算訓練模型對內存的消耗。如果數(shù)據(jù)量太大可以考慮減少訓練樣本、降維或者使用分布式機器學習系統(tǒng)。
3. 特征工程特征工程是非常能體現(xiàn)一個機器學習者的功底的。特征工程包括從原始數(shù)據(jù)中特征構建、特征提取、特征選擇,非常有講究。深入理解實際業(yè)務場景下的問題,豐富的機器學習經驗能幫助我們更好的處理特征工程。特征工程做的好能發(fā)揮原始數(shù)據(jù)的最大效力,往往能夠使得算法的效果和性能得到顯著的提升,有時能使簡單的模型的效果比復雜的模型效果好。數(shù)據(jù)挖掘的大部分時間就花在特征工程上面,是機器學習非常基礎而又必備的步驟。數(shù)據(jù)預處理、數(shù)據(jù)清洗、篩選顯著特征、摒棄非顯著特征等等都非常重要,建議深入學習。
4. 模型訓練、診斷、調優(yōu)現(xiàn)在有很多的機器學習算法的工具包,例如sklearn,使用非常方便,真正考驗水平的根據(jù)對算法的理解調節(jié)參數(shù),使模型達到最優(yōu)。當然,能自己實現(xiàn)算法的是最牛的。模型診斷中至關重要的是判斷過擬合、欠擬合,常見的方法是繪制學習曲線,交叉驗證。通過增加訓練的數(shù)據(jù)量、降低模型復雜度來降低過擬合的風險,提高特征的數(shù)量和質量、增加模型復雜來防止欠擬合。診斷后的模型需要進行進一步調優(yōu),調優(yōu)后的新模型需要重新診斷,這是一個反復迭代不斷逼近的過程,需要不斷的嘗試,進而達到最優(yōu)的狀態(tài)。
5. 模型驗證、誤差分析模型驗證和誤差分析也是機器學習中非常重要的一步,通過測試數(shù)據(jù),驗證模型的有效性,觀察誤差樣本,分析誤差產生的原因,往往能使得我們找到提升算法性能的突破點。誤差分析主要是分析出誤差來源與數(shù)據(jù)、特征、算法。
6 。 模型融合一般來說實際中,成熟的機器算法也就那么些,提升算法的準確度主要方法是模型的前端(特征工程、清洗、預處理、采樣)和后端的模型融合。在機器學習比賽中模型融合非常常見,基本都能使得效果有一定的提升。這篇博客中提到了模型融合的方法,主要包括一人一票的統(tǒng)一融合,線性融合和堆融合。