# Basic Concept # 誤差形成 :::info ## Where does the error come from? - 1.bias : 所有$f^*$的平均$\bar f$和靶心$\hat f$的差距 2.variance : - $f^*$的分散程度 ($f^*$為測試結果,進行多次實驗測試則會有多個不同的$f^*$) - 給的Model複雜度愈大時,variance會跟著變大 - 估計 - variance 以$s^2$估測 varience $\sigma^2$ :::spoiler $m={1 \over N}\sum\limits_{n}{x^n}$ $s^2={1 \over N}\sum\limits_{n}{(x^n-m)^2}$ 由於 $E[s^2]={{N-1} \over N}\sigma^2\not= \sigma^2$,當N變大能使$s^2$與$\sigma^2$之間的估測差距變小 ::: - bias 計算$f^*$的期望值,與實際的$\hat f$對照 :::spoiler $E[f^*]=\bar f$ ::: ::: :::info ![](https://i.imgur.com/2esz1Ga.png) ::: :::info ## Large Bias ***當model沒辦法符合training的examples*** - underfitting 可能是發生underfitting,model太過於簡單,考慮的資訊較少 若Bias大,代表結果沒有在目標上,需要換個model(考慮更多參數) >[name=samwang1228]overfitting應該是variance大的情況且應該是underfitting才要重新設計moderl? >[name=yenling]我也覺得是這樣 >[name=PEI-CI]對,我有改了,如果還有要補充大家可以直接加 - 解決方法:重新設計Model - 加進更多的feature - 讓Model更複雜 ::: :::info ## Large Variance ***可以符合training的資料(小error可以),但在testing上得到大的error*** - 解決方法: - 增加data (防止過度擬合資料雜訊) - regularization, - 希望參數越小越好 - 可能會傷害bias,因此在做regularization時要調整一下weight在bias和variance之間取得平衡 ::: # 模組選擇 :::success ## Model Selection - Model在你自己找的Testing Set,與之後真正測資的Testing Set的error可能有極大的不同,因此要用Validation來接近實例 - Cross Validation - 將Training Set拆成==Validation Set==跟==Training Set==,把在Training Set得到的f^*^的結果丟到Validation Set,來去找error最小的Model,之後再將所有data再次丟進這個Model得到一個新的error,這個基本上會因此變大但也更接近現實。 - 特別注意,當訓練完成後,不應該以Testing Set的結果,再去修正Model,會使得Testing Set失去獨立性,無法正確反映準確度。 ![](https://i.imgur.com/79DPNoj.png) - N-fold Cross Validation 跟上面很像只是做N次,放法是將Validation Set跟Training Set的拆法作排列組合並在每個columu取平均在從這個平均error==選最小的==。 ![](https://i.imgur.com/1mYnK5n.png) ::: ###### tags: `ML2020`