1. 程式人生 > >十一、機器學習系統設計

十一、機器學習系統設計

1 首先要做什麼

首先要選擇合適的特徵。

2 錯誤分析

構建一個學習演算法的推薦方法:

  1. 從一個簡單演算法開始,實現該演算法並用交叉驗證集測試這個演算法;
  2. 繪製學習曲線,決定是增加資料還是增加特徵或其他;
  3. 進行誤差人工分析:人工檢查交叉驗證集中,演算法中產生預測誤差的例項看看這些例項是否有系統化趨勢。

3 類偏斜的誤差度量

以惡性腫瘤的估計為例,惡性腫瘤的發病率為0.5%,如果預測所有的腫瘤都為良性的,誤差只有0.5%,但是構建
一個神經網路進行預測,可能有1%誤差,這是誤差不能作為評判演算法效果的依據。

因此引入查準率和查全率。

定義混淆矩陣:

查準率Precision:

查準率高,表明預測為惡性腫瘤病人裡實際為惡性腫瘤病人的百分比高。

查全率recall:

查全率高,表明預測為惡性腫瘤病人裡被預測出的實際為惡性腫瘤的病人百分比高。

4 查全率和查準率之間的權衡

使用線性迴歸預測惡性腫瘤,當輸出y∈[0,1],若我們需要高查準率,採用比0.5更大的閾值如0.7,0.9,這樣會減少錯誤預測病人為惡性腫瘤的情況,但是此時查全率會低。

如果我們需要高查全率,採用比0.5更小的閾值如0.3,這樣會讓所有可能為惡性腫瘤的病人進一步得到檢查。此時查準率低。

判斷演算法是否為好演算法採用 F1 Score:

F1越大,演算法查全率和查準率都相對較高。