機器學習系統設計 ---- Machine Learning System Design

構建一個機器學習算法的過程:算法

  1. 快速構建一個簡單的算法,並用交叉驗證集來測試這個算法的性能。
  2. 畫出學習曲線,檢查算法是否有高方差或高誤差的問題,從而選擇相應的應對方法。
  3. 偏差分析,查看使算法出現偏差的實例,分析這些實例是否有某種系統化的趨勢。

評估算法性能機器學習

偏斜類(skewed classes):訓練集中的大多數實例屬於一類,其餘類佔得不多或沒有。性能

類偏斜的狀況下咱們就不能單純使用偏差來評判算法的效果。應使用新的評估度量值。學習

TP:預測爲真,實際爲真測試

FP:預測爲真,實際爲假spa

FN:預測爲假,實際爲真blog

TN:預測爲假,實際爲假ci

查準率:TP / (TP + FP)   Precision,越高越好io

查全率:TP / (TP + FN)   Recall,越高越好class

構成PR曲線:準不許,全不全(右凸,higher recall, lower precision,調整閾值)

 如何自動選擇閾值:計算F1值,F1 Score = 2PR / (P + R),取最高值對應的閾值。

 

TPR:TP / (TP + FN)

FPR:FP / (TN + FP)

 構成ROC曲線:靈敏度,特異度(左凸)

數據問題

得到大量的數據在不少狀況下是得到高性能學習算法的一個很好的方式,可是不要盲目的去收集大量的數據。

一種比較好的方式:咱們有大量的數據(低方差,避免過擬合),而且咱們訓練了一種帶有不少參數(低誤差)的學習算法,那麼不少時候能訓練出一個高性能的算法。

相關文章
相關標籤/搜索