現在機器學習應用越來越流行,了解機器學習專案的流程,能幫助我們更好的使用機器學習工具來處理實際問題。
1理解實際問題,抽象為機器學習能處理的數學問題
理解實際業務場景問題是機器學習的第一步。2 獲取資料機器學習的特徵工程和模型訓練通常都是一件非常耗時的過程,胡亂嘗試時間成本是非常高的。深入理解要處理的問題,能避免走很多彎路。
理解問題,包括明確可以獲得什麼樣的資料,機器學習的目標是乙個分類、回歸還是聚類。如果都不是的話,要考慮將它們轉變為機器學習問題。
獲取資料報括獲取原始資料以及從原始資料中經過特徵工程從中提取訓練、測試資料。機器學習比賽中原始資料都是直接提供的,但是實際問題需要自己獲得原始資料。3 特徵工程「資料決定機器學習結果的上限,而演算法只是盡可能的逼近這個上限」,可見資料在機器學習中的作用。總的來說資料要有具有「代表性」,否則必然會過擬合。對於分類問題,資料偏斜不能過於嚴重,不同類別的資料數量不要有數個數量級的差距。
不僅如此還要對評估資料(樣本數量、特徵數量)的量級,估算出其對記憶體的消耗程度,判斷訓練過程中記憶體是否能夠放得下。如果資料量太大可以考慮改進演算法或者減少訓練樣本、降維的技巧了,如果資料量實在太大,那就要考慮分布式了。
特徵工程是非常能體現乙個機器學習者的功底的。4 模型訓練、診斷與調優特徵工程包括從原始資料中特徵構建、特徵提取、特徵選擇,非常有講究。深入理解實際業務場景下的問題,豐富的機器學習經驗能幫助我們更好的處理特徵工程。特徵工程做的好能發揮原始資料的最大效力,往往能夠使得演算法的效果和效能得到顯著的提公升,有時能使簡單的模型的效果比複雜的模型效果好。
資料預處理、資料清洗是很關鍵的步驟,往往能夠使得演算法的效果和效能得到顯著提高。歸一化、離散化、因子化、缺失值處理、去除共線性等,資料探勘過程中很多時間就花在它們上面。這些工作簡單可複製,收益穩定可預期,是機器學習的基礎必備步驟。
篩選出顯著特徵、摒棄非顯著特徵,需要機器學習工程師反覆理解業務。這對很多結果有決定性的影響。特徵選擇需要運用特徵有效性分析的相關技術,如相關係數、卡方檢驗、平均互資訊、條件熵、後驗概率、邏輯回歸權重等方法。
現在有很多的機器學習演算法的工具包,例如sklearn,使用非常方便,真正考驗水平的根據對演算法的理解調節(超)引數,使模型達到最優。5 模型驗證、誤差分析過擬合、欠擬合的模型狀態判斷是模型診斷中至關重要的一步。常見的方法如:交叉驗證,繪製學習曲線等。過擬合的基本調優思路是增加訓練的資料量,降低模型複雜度。欠擬合的基本調優思路是提高特徵數量和質量,增加模型複雜度。
診斷後的模型需要進行進一步調優,調優後的新模型需要重新診斷,這是乙個反覆迭代不斷逼近的過程,需要不斷的嘗試,進而達到最優的狀態。
模型驗證和誤差分析也是機器學習中非常重要的一步。6 模型融合通過測試資料,驗證模型的有效性,通過觀察誤差樣本,分析誤差產生的原因(是引數的問題還是演算法選擇的問題,是特徵的問題還是資料本身的問題 …),往往能使得我們找到提公升演算法效能的突破點。
誤差分析主要是分析出誤差**於 演算法 、 特徵 、資料。
一般來說實際中,成熟的機器演算法也就那麼些,工程上,提公升演算法的準確度主要方法是模型的前端(特徵工程、清洗、預處理、取樣)和後端的模型融合。因為他們比較標準可複製,效果比較穩定。而直接調參的工作不會很多,畢竟大量資料訓練起來太慢了,而且效果難以保證。7 上線執行模型融合的方法,主要包括一人一票的統一融合,線性融合和堆融合。
在機器學習中模型融合非常常見,基本都能使得效果有一定的提公升,而且效果很好。
這些工作流程主要是工程實踐上總結出的一些經驗,並不是每個專案都包含完整的乙個流程。這裡的部分只是乙個指導性的說明,只有大家自己多實踐,多積累專案經驗,才會有自己更深刻的認識。
參考機器學習專案流程
完整機器學習專案流程
1 抽象成數學問題 明確問題是進行機器學習的第一步。機器學習的訓練過程通常都是一件非常耗時的事情,胡亂嘗試時間成本是非常高的。這裡的抽象成數學問題,指的我們明確我們可以獲得什麼樣的資料,目標是乙個分類還是回歸或者是聚類的問題,如果都不是的話,如何劃歸為其中的某類問題。2 獲取資料 資料決定了機器學習...
完整機器學習專案的流程
1 抽象成數學問題 明確問題是進行機器學習的第一步。機器學習的訓練過程通常都是一件非常耗時的事情,胡亂嘗試時間成本是非常高的。這裡的抽象成數學問題,指的明確我們可以獲得什麼樣的資料,抽象出的問題,是乙個分類還是回歸或者是聚類的問題。2 獲取資料 資料決定了機器學習結果的上限,而演算法只是盡可能逼近這...
1 請簡要說完整機器學習專案的流程
1 抽象成數學問題 明確問題是進行機器學習的第一步。機器學習的訓練過程通常都是一件非常耗時的事情,胡亂嘗試時間成本是非常高的。這裡的抽象成數學問題,指的我們明確我們可以獲得什麼樣的資料,目標是乙個分類還是回歸或者是聚類的問題,如果都不是的話,如果劃歸為其中的某類問題。2 資料決定了機器學習結果的上限...