人工智慧(3)- 模型評估和調參
1.pipeline 管道利用
pipeline的概念可以從這裡抽象出來:將一件需要重複做的事情切割成各個不同的階段,每一個階段由獨立的單元負責。所有待執行的物件依次進入作業佇列。
管道機智在機器學習中得以應用的根源在於引數集在新的資料及上的重複利用。
2.K-折交叉驗證評估模型效能
holdout交叉驗證
holdout交叉驗證是機器學習模型泛化效能的一個經典且常用的方法。
holdout交叉驗證能將最初的資料集分為訓練集和測試集
模型選擇:對模型的的不同引數設定進行調優和比較的過程,也就是針對給定分類問題,調整引數以尋找最優值(超參)的過程。
使用holdout進行模型選擇更好的方法:將資料劃分為三個部分,訓練集,測試集,驗證集。
訓練集:用於不同模型的擬合,模型在驗證集上的效能表現作為模型選擇的標準
不使用測試集用於模型訓練以及模型選擇的優勢:
評估模型應用於新資料上能夠獲得較小偏差
K折交叉驗證(k-fold cross-validation)
首先將所有資料分割成K個子樣本,不重複的選取其中一個子樣本作為測試集,其他K-1個樣本用來訓練。共重複K次,平均K次的結果或者使用其它指標,最終得到一個單一估測。
這個方法的優勢在於,保證每個子樣本都參與訓練且都被測試,降低泛化誤差。其中,10折交叉驗證是最常用的。
3.利用網格搜尋調參
網格搜尋是一種調參手段;窮舉搜尋
4.學習曲線和驗證曲線
學習曲線:
判定偏差和方差的問題
驗證曲線:
判定過擬合與欠擬合,通過定位擬合情況,幫助模型提高效能,驗證曲線繪製的是準確率與模型引數之間的關係。
5.不同的效能評估指標
準確(分類)率 VS. 誤分類率:
準確(分類)率(accuracy) = 正確預測的正反例數 / 總數
- ACC = (TP+TN) / (TP+TN+FP+FN)
- = (A+D) / (A+B+C+D)
誤分類率 = 錯誤預測的正反例數 / 總數
- 誤分類率 = (FP+FN) / (TP+TN+FP+FN) = 1 - ACC
- = (B+C) / (A+B+C+D)
召回率 VS.精確率 → F1 Score
召回率(Recall) = 正確預測到的正例數 / 實際正例總數
- Recall (True Positive Rate or Sensitivity) = TP / (TP+FN)
- = D / (C+D)
精確率(Precision) = 正確預測到的正例數 / 預測正例總數
- Precision (Positive Predicted Value,PV+) = TP / (TP+FP)
- = D /(B+D)
F1 Score
F1 Score為精準率和召回率的<u>調和均值</u>
- 2 / F1 = 1 / P + 1 / R
- F1 Score = 2TP / (2TP + FP + FN)
- 準確率(accuracy)和精確率(precision)都高的情況下,F1 Score也會顯得很高。
參考資料:
1.機器學習效能評估指標彙總 https://www.jianshu.com/p/b960305718f1
2.初識pipeline https://blog.csdn.net/midhillzhou/article/details/52122354
3.【機器學習】學習曲線和驗證曲線 https://blog.csdn.net/ChenVast/article/details/79257387
4.【機器學習】K折交叉驗證評估模型效能 https://blog.csdn.net/chenvast/article/details/79257097