一. 準備作業
1. 定義問題,收集資料集
2. 確定衡量成功的指標
- 對于平衡分類問題(每個類別的可能性相同),精度和ROC是常用的指標,
- 對于類別不平衡 問題,你可以使用準確率和召回率,
- 對于排序問題或多標簽分類,你可以使用平均準確率均值,
- 自定義衡量成功的指標也很常見,
通過衡量成功的指標指引你選擇損失函式,即模型要優化什么,
損失函式需要在只有小批量資料時即可計算(理想情況 下,只有一個資料點時,損失函式應該也是可計算的),而且還必須是可微的(否則無法用反向 傳播來訓練網路),
衡量成功的指標和損失函式都是用來評估一個模型好壞的一個標準,指標常用來作為結果來評估,損失函式常用來在模型訓練程序中來評估,因為損失函式是可微的,所以可以通過反向傳播來訓練,
3. 確定評估方法
- 留出驗證集,資料量很大時可以采用這種方法,
- K 折交叉驗證,如果留出驗證的樣本量太少,無法保證可靠性,那么應該選擇這種方法,
- 重復的 K 折驗證,如果可用的資料很少,同時模型評估又需要非常準確,那么應該使用這種方法,
二. 特征工程
4. 資料預處理
-
收集資料
-
匯入資料
-
合并資料、缺失值清洗等
5. 特征表示
要將資料集中的資料特征表示成計算機能夠理解的數值形式,常用的表示方法是區域表示和分布式表示,
6. 傳統的特征學習(表示學習)
特征選擇
常用的特征:
- 從資料集中選擇合適的特征;
- 自行設計特征:由多個特征合成的一個新特征(例如:長度*寬度=面積,面積作為新特征);
- 多項式特征:一個特征經過運算,如x: x2,x1/2,
特征抽取
好的特征可以極大提高分類器的性能. 因此,要取得好的預測效果,需要將樣本的原始特征向量 ?? 轉換到更有效的特征向量 ??(??),這個程序叫做特征抽取.
7. 特征縮放、標準化
-
面對多維特征問題的時候,在對代價函式使用梯度下降演算法前要對特征進行一些處理,保證這些特征都具有相近的尺度,這將幫助梯度下降演算法更快地收斂,
-
歸一化和標準化是常用的兩個特征縮放的方法
歸一化:通過最大值最小值把資料壓縮到[0,1] 區間上;
\[x^{}=\frac{x-min(x)}{max(x)-min(x)} \]
標準化:減去均值后再除以標準差,將資料范圍,將資料變成均值為0,方差為1的高斯分布,標準化不會限定值到某個特定的范圍,這對某些演算法可能構成問題(比如,神經網路常需要輸入值得范圍是0到1),但是,標準化受到例外值的影響很小,
\[x^{}=\frac{x-\mu}{\sigma} \]
三. 開發模型
8. 開發比基準更好的模型
開發一個小型模型,它能夠打敗純隨機的基準(dumb baseline),
9. 開發過擬合的模型
請記住,機器學習中無處不在的對立是優化和泛化的對立,理想的模型是剛好在欠擬合和過擬合的界線上,在容量不足和容量過大的界線上, 為了找到這條界線,你必須穿過它,
要搞清楚你需要多大的模型,就必須開發一個過擬合的模型,這很簡單,
- 添加更多的層;
- 讓每一層變得更大;
- 訓練更多的輪次,
要始終監控訓練損失和驗證損失,以及你所關心的指標的訓練值和驗證值,如果你發現模型在驗證資料上的性能開始下降,那么就出現了過擬合,
10. 模型正則化與調節超引數
這一步是最費時間的:你將不斷地調節模型、訓練、在驗證資料上評估(這里不是測驗資料)、 再次調節模型,然后重復這一程序,直到模型達到最佳性能,你應該嘗試以下幾項:
- 添加 dropout,
- 嘗試不同的架構:增加或減少層數,
- 添加 L1 和 / 或 L2 正則化,
- 嘗試不同的超引數(比如每層的單元個數或優化器的學習率),以找到最佳配置,
- ?(可選)反復做特征工程:添加新特征或洗掉沒有資訊量的特征,
四. 模型評估
11. 最后
一旦開發出令人滿意的模型配置,你就可以在所有可用資料(訓練資料 + 驗證資料)上訓練最終的生產模型,然后在測驗集上最后評估一次,
如果測驗集上的性能比驗證集上差很多,那么這可能意味著你的驗證流程不可靠,或者你在調節模型引數時在驗證資料上出現了過擬合, 在這種情況下,你可能需要換用更加可靠的評估方法,比如重復的 K 折驗證,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/39019.html
標籤:其他
上一篇:無監督學習方法
