1. 程式人生 > >機器學習專案實戰流程

機器學習專案實戰流程

機器學習專案流程:

資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已 問題建模——獲取資料——特徵工程——模型訓練——模型調優——線上執行

資料預處理:

資料預處理的思考流程如下: (1)讀入樣本,觀察原始資料:

  • 樣本類別的取值集合與分佈
  • 按照不同的特徵型別區分
  • 理解屬性欄位名,瞭解對應語義

(2)觀察各個特徵的分佈情況,同時可以進行離群點檢測

  • 對於數值變數:理解連續變數的中心趨勢,還有變數的離散程度
  • 對於型別變數:在每個維度上的分佈情況,可以通過條形圖展示

(3)無量綱化

  • 標準化:符合正態分佈的可以進行標準化
  • 歸一化:非正太分佈的建議採用歸一化,也叫區間縮放

(4)數值特徵離散化

  • 分段處理(最簡單的可以採用二值化)

5)特徵啞編碼(Dummy Coding):

  • 最常用的是Onehot編碼

(6)缺失值填充

當資料預處理完成後,我們需要選擇有意義的特徵輸入機器學習的演算法和模型進行訓練,通常選擇特徵從兩個方面來考慮: (1)特徵是否發散:如果一個特徵不發散,例如方差接近於0,也就是說樣本在這個特徵上基本上沒有差異,這個特徵對於樣本的區分並沒有什麼用。 (2)特徵與目標的相關性:這點比較顯見,與目標相關性高的特徵,應當優先選擇,比如皮爾遜係數、卡方檢驗、互資訊等。

特徵選擇:

(1)過濾法filter:對各個特徵按照發散性或相關性進行評分,通過設定閾值或者待選擇閾值的個數,進行特徵的選擇; (2)包裝法wrapper

:根據目標函式(通常是預測效果的評分),每次選擇若干特徵或排除若干特徵; (3)嵌入法embedded:先使用某些機器學習的演算法和模型進行訓練,得到各個特徵的權值係數,根據係數從大到小選擇特徵。類似於過濾法,不同的是該方法是通過訓練來確定特徵的優劣。 特徵提取/構造是在當前基本的特徵上獲得更多的特徵,包括:資料變換(Log,指數,Box-Cox,二值化等);維度變換(PCA,Embedding,聚類等);特徵組合

模型診斷和調優

可以根據學習曲線來看,通常最簡單的就看兩步: (1)訓練集上的AUC是否大於75%=>欠擬合 **解決方案:**獲取更多資料、增加特徵量、用更加複雜的特徵和模型 (2)驗證集上的AUC和訓練集上的AUC是否差距10%=>過擬合

**解決方案:**增加樣本、特徵降維、採用更簡單的模型