Loading [MathJax]/jax/output/HTML-CSS/jax.js

2017年10月13日 星期五

Week6

Evaluating a Hypothesis

  • 為了要評量hypothesis,將data分成training set跟test set
    • 一般來說70%作為training set,30%作為test set
  • 新的步驟如下:
    • 利用training set去學習出Θ使得Jtrain(Θ)為最小
    • 計算test set error Jtest(Θ)

The test set error

  • For linear regression
    • Jtest(Θ)=12mtestmtesti=1(hΘ(x(i)test)y(i)test)2
  • For classification
    • Misclassification error (aka 0/1 misclassification error)
    • err(hΘ(x),y)=1if hΘ(x)0.5 and y=0 or hΘ(x)<0.5 and y=10otherwise
      • 預測失敗就設1,成功就設0
    • 平均的test error為:
      • Test Error=1mtestmtesti=1err(hΘ(x(i)test),y(i)test)

Model Selection and Train/Validation/Test Sets

  • 由於hypothesis在training set表現好,未必代表在test set也能表現好,所以不能只依據training set的表現來評斷hypothesis
  • 其中一個解決此問題的方法是多增加一組data set稱為cross validation set
    • Training set: 60%
    • Cross validation set: 20%
    • Test set: 20%
  • 當我們想要選擇model的polynomial degree時,可以照下列步驟:
    • 針對不同polynomial degree分別算出在training set最佳的Θ
    • 將各個Θ用在validation set找出error最小的degree
    • 在test set上算出上一步驟degree的error作為generalization error

Learning Curves

  • Bias很大的影響
    • N很小時,較容易找出quadratic curve來fit data,所以train error很小。
    • N很小時,train出來的hypothesis對於test set來說不準的機率大很多,所以test error很高。
    • 隨著N增大,兩種error都會進入停滯期。
    • 如果train出來的hypothesis的bias很大,增加training set size不會有幫助。
  • Variance很大的影響
    • 若Variance很大,則N要很大才會進入停滯期。
    • 若train出來的hypothesis的Variance很大,增加training set size是有幫助的。

Deciding What to Do

  • 當預測失準時,我們可以做下列的修正:
    • 取得更多training data
      • 適用於high variance
    • 將features拆成更小的sets
      • 適用於high variance
    • 增加新的features
      • 適用於high bias
    • 嘗試polynomial features
      • 適用於high bias
    • 減小λ
      • 適用於high bias
    • 增大λ
      • 適用於high variance

Error Analysis

  • 以下是建議用以解決machine learning問題的方法:
    • 快速實作出一個最簡單的演算法,並及早在cross validation set上做測試
    • 畫出learning curve以決定是需要更多data還是更多feature
    • 人工檢視那些在cross validation set上錯誤的例子,看發生最多錯誤的原因為何
  • 必須要能以一個數字來評估演算法(例如:錯誤率),舉例來說,當在考慮某個feature是否該加進去,若加進去後錯誤率反而增加就知道不該把它考慮進去。

Error metrics for skewed classes

  • 若分類問題中,兩個結果會發生的機率過於極端,則稱此情況為skewed classes
    • 例如:資料中只有0.5%會得到癌症
    • 做training的error rate可能比用猜的機率還低...
  • 改用Precision跟Recall來評估演算法的performance
    • 要將題目中機率特別小的設為y = 1
    • 做下列定義

    • Precision
      • Precision=True positives# predicted as positive=True positivesTrue positives + False positives
    • Recall
      • Recall=True positives# actual positives=True positivesTrue positives + False negatives
  • 要怎麼用單一數值來評估Precision跟Recall的表現呢
    • 使用F1 Score (或稱為F Score)
      • 2PRP+R

















沒有留言:

張貼留言