2017年8月13日 星期日

Week3


  • 現實中Prediction不可能完全準確,這中間一定會有一些損失產生,可以用Loss Function來計算



Training error

  • RMSE (Root Mean Square Error)

  • 由於Model複雜度越高越能fit training data,所以training error會越低


  • 但Training error是用來評估預測的效能的好工具嗎???
    • 由於Training error代表的是對training data的fit程度,除非training data具代表性可以包含所有一切的可能,否則好的training error未必代表預測是準確的

Generalization (True) Error






Test error


  • 從Training set裡面取一些出來當作Test set


  • Test error是把從training data上得到的Model拿來對Test data做預測,以求出Loss作為Test error


  • Test error接近Generalization error只是會上下震盪
  • Overfit
    • 當Model複雜度已經過高導致Generalization error開始增加的情況


Training / Test split


  • Training set切得太少
    • 預估的Model不準確
  • Test set切得太少
    • Test error無法逼近Generalization error

Sources of error


  • Error的來源有三種
    • Noise
    • Bias
    • Variance
  • Noise
    • 資料本身就會有一些不準確的Noise產生


  • Bias
    • 假設我們把Model複雜度設為1,把所有可能大小的training set都拿出來算Model,並求出平均值fw bar


    • Bias代表的是和實際結果的偏差程度,Model複雜度越低,和實際結果偏差會越大,也就是Bias越大


  • Variance
    • 把所有可能大小的training set都拿出來算Model,這些Model的變化程度代表Variance
    • Model複雜度越低,變動也較小,所以Variance越低

Bias-Variance Tradeoff

Error vs. amount of data

完成Regression/ML的工作流程


  • 將資料分成training data跟test data會以下列方式做Regression


  • 但這樣的作法是有問題的
    • Test error是根據test data求得,若test data不具代表性則可能實際上的performance是更差的
  • 解決方法
    • 使用兩組Test set


  • 一般在切資料時會以下面的比例去切


參考資料

https://www.coursera.org/learn/ml-regression/home/welcome

沒有留言:

張貼留言