機器學習專案實戰流程
阿新 • • 發佈:2018-12-15
機器學習專案流程:
資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已 問題建模——獲取資料——特徵工程——模型訓練——模型調優——線上執行
資料預處理:
資料預處理的思考流程如下: (1)讀入樣本,觀察原始資料:
- 樣本類別的取值集合與分佈
- 按照不同的特徵型別區分
- 理解屬性欄位名,瞭解對應語義
(2)觀察各個特徵的分佈情況,同時可以進行離群點檢測
- 對於數值變數:理解連續變數的中心趨勢,還有變數的離散程度
- 對於型別變數:在每個維度上的分佈情況,可以通過條形圖展示
(3)無量綱化
- 標準化:符合正態分佈的可以進行標準化
- 歸一化:非正太分佈的建議採用歸一化,也叫區間縮放
(4)數值特徵離散化
- 分段處理(最簡單的可以採用二值化)
(5)特徵啞編碼(Dummy Coding):
- 最常用的是Onehot編碼
(6)缺失值填充
當資料預處理完成後,我們需要選擇有意義的特徵輸入機器學習的演算法和模型進行訓練,通常選擇特徵從兩個方面來考慮: (1)特徵是否發散:如果一個特徵不發散,例如方差接近於0,也就是說樣本在這個特徵上基本上沒有差異,這個特徵對於樣本的區分並沒有什麼用。 (2)特徵與目標的相關性:這點比較顯見,與目標相關性高的特徵,應當優先選擇,比如皮爾遜係數、卡方檢驗、互資訊等。
特徵選擇:
(1)過濾法filter:對各個特徵按照發散性或相關性進行評分,通過設定閾值或者待選擇閾值的個數,進行特徵的選擇; (2)包裝法wrapper
模型診斷和調優
可以根據學習曲線來看,通常最簡單的就看兩步: (1)訓練集上的AUC是否大於75%=>欠擬合 **解決方案:**獲取更多資料、增加特徵量、用更加複雜的特徵和模型 (2)驗證集上的AUC和訓練集上的AUC是否差距10%=>過擬合