機器學習(二)工作流程與模型調優
上一講中主要描述了機器學習特征工程的基本流程,其內容在這裏:機器學習(一)特征工程的基本流程
本次主要說明如下:
1)數據處理:此部分已經在上一節中詳細討論
2)特征工程:此部分已經在上一節中詳細討論
3)模型選擇
4)交叉驗證
5)尋找最佳超參數
首先看下總圖:
(一)模型選擇:
1)交叉驗證
- 交叉驗證集做參數/模型選擇
- 測試集只做模型效果評估
2)K折交叉驗證:
在Python中有這樣的函數用於在交叉驗證過程中對參數的選擇
(二)模型的狀態
a. 過擬合:過擬合(overfitting)是指在模型參數擬合過程中的問題,由於訓練數據包含抽樣誤差,訓練時,復雜的模型將抽樣誤差也考慮在內,將抽樣誤差也進行了很好的擬合。
b. 欠擬合 :模型在訓練過程中沒有訓練充分,導致模型很好的表現出數據原有性質。
模型狀態驗證工具:學習曲線
通過在給定訓練樣本增加的時候,測試機和訓練集中準確率的變化趨勢可以看到現在模型的狀態。
怎麽防止過擬合呢?
- 獲取更多數據: 讓模型「看見」盡可能多的「例外情況」,它就會不斷修正自己,從而得到更好的結果;
a)從數據源頭采集更多數據
b) 通過一定規則擴充數據集,如加入隨機噪聲,圖的旋轉平移縮放
c) 采樣技術
- 減小模型的復雜度:減少數的棵樹,網絡層數等;
- 減少訓練時間 Early stopping:提前終止(當驗證集上的效果變差的時候);
- 加入正則項 / 增大正則化系數:這類方法直接將權值的大小加入到 Cost 裏,在訓練的時候限制權值變大;
- 使用集成學習:綜合多個學習器的結果;
- Dropout:類似於集成學習,是的網絡結構發生了改變
怎樣防止欠擬合? (一般很少出現)
- 找更多的特征
- 減小正則化系數
(三)模型分析
1)線下模型權重分析:線性或者線性kernel的model
- Linear Regression
- Logistic Regression
- LinearSVM
2)對權重絕對值高/低的特征
- 做更細化的工作
- 特征組合
3) Bad-case分析
分類問題
- 哪些訓練樣本分錯了?
- 我們哪部分特征使得它做了這個判定?
- 這些bad cases有沒有共性
- 是否有還沒挖掘的特性
回歸問題
- 哪些樣本預測結果差距大,為什麽?
(四)模型融合
1)平均法
1. 簡單平均法(simple averaging)
2. 加權平均法(weighted averaging)
註意:必須使用非負權重才能確保集成性能優於單一最佳個體學習器,因此在集成學習中一般對學習器的權重法以非負約束。
簡單平均法其實是加權平均法令w=1/T的特例。集成學習中的各種結合方法其實都可以視為加權平均法的特例或變體。加權平均法的權重一般是從訓練數據中學習而得。由於現實任務中樣本不充分或存在噪聲,使得學得的權重不完全可靠,有時加權平均法未必一定優於簡單平均法。
2)投票法
對分類任務來說,最常見的結合策略使用投票法
1. 絕對多數投票法(majority voting):即若某標記得票過半數,則預測為該標記;否則拒絕預測
2. 相對多數投票法(plurality voting):即預測為得票最多的標記,若同時有多個標記獲最高票,則從中隨機選取一個。
3. 加權投票法(weighted voting):絕對多數投票法在可靠性要求較高的學習任務中是一個很好的機制,若必須提供結果,則使用相對多數投票法。
- 類標記:使用類標記的投票亦稱“硬投票”(hard voting)。
- 類概率:使用類概率的投票亦稱“軟投票”(soft voting)。
以上兩種不能混用,若基學習器產生分類置信度,例如支持向量機的分類間隔值,需使用一些技術如Platt縮放、等分回歸、等進行校準後才能作為類概率使用。若基學習器的類型不同,則其類概率值不能直接進行比較,可將類概率輸出轉化為類標記輸出然後再投票。
3)Stacking:Stacking方法是指訓練一個模型用於組合其他各個模型。首先我們先訓練多個不同的模型,然後把之前訓練的各個模型的輸出為輸入來訓練一個模型,以得到一個最終的輸出。理論上,Stacking可以表示上面提到的兩種Ensemble方法,只要我們采用合適的模型組合策略即可。但在實際中,我們通常使用logistic回歸作為組合策略。
關於集成學習這裏也有更詳細的描述:集成學習
參考
- 七月在線機器學習課程
- 周誌華:機器學習西瓜書
機器學習(二)工作流程與模型調優