[筆記] 機器學習 過度擬合問題 ( overfitting )
過度擬合 ( overfitting ) 與擬合不足 ( underfitting )
過度擬合 ( 右圖 )
特徵量過多,資料量過少
解決方法 :
降低特徵量
- 人工檢查,保留較重要的特徵量
- 也有演算法 ( model selection algorithm ) 可以選擇何為較重要的特徵值
正規化
- 可以保留所有的特徵量,但減少 θⱼ 的大小
- 當擁有需多有用的特徵量時,正規化是很有效的使所有特徵量都會有貢獻
擬合不足 ( 左圖 )
- 特徵量過少
正規化 ( Regularization )
代價函數
原理 : 將 θⱼ 乘上較大的係數,可以使 θⱼ 大幅下降,降低一些特徵值的影響力
例如 :
θ₃
、θ₄
會大幅下降,甚至可以忽略θ₀ + θ₁x + θ₂x² + θ₃x³ + θ₄x⁴
→θ₀ + θ₁x + θ₂x²
- 正規化後的代價函數
- λ 為正規化參數,如果過大會因為 θⱼ ( j ≠ 0 ) 全都趨近於 0 導致 underfitting
正規化線性回歸 ( Regularized Linear Regression )
- 先將
θ₀
分離出來,因為正規化不須懲罰θ₀
- 再加上正規化算式
- 將
θⱼ
提出來 - 此為正規化線性回歸
1 | function [J, grad] = linearRegCostFunction(theta, X, y, lambda) |
- 在 Octave 上的正規化線性回歸函式
正規化正規方程 ( Regularized Normal Equation )
- 因為正規化不須懲罰
θ₀
,所以最左上角為 0 λ⋅L
可以使原本不可逆的XᵀX
變成可逆的XᵀX + λ⋅L
正規化邏輯回歸 ( Regularized Logistic Regression )
- 邏輯回歸的代價函數正規化
- 梯度下降的方法跟正規化線性回歸大同小異
1 | function [J, grad] = costFunctionReg(theta, X, y, lambda) |
- 在 Octave 上的正規化邏輯回歸函式