处理过拟合问题-Regularization
數學中的Regularization是為了解決overfitting問題而引入的一種方法。所謂overfitting就是在一些數學模型中由于過于復雜,有太多的觀測參數,以至于一點點微小的誤差都回產生巨大的影響,任何微小的數據擾動都會帶來巨大的改變。在一些訓練模型中用來fitting的data也會因為結構問題而Overfitting。
?
一般來說有兩種克服Overfitting的方法:一是補償模型的某些部分(如Regularization);二是根據潛在的問題提供而外的數據來訓練。
?
下面介紹Tikhonov Regularization作為例子。
?
在如下方程中:
Ax = b
要求解x的標準方法是最小二乘法:
Min || Ax – b ||^2
求解這個方程除了overfitting外,還有overdetermined (underdetermined)的問題。所謂overdetermined (underdetermined),是指方程組中未知數的個數與方程數不不一致。如果把一個未知數看成一個自由度的話,每個單獨的方程可以看成一個對應的constraint,當constraint的數目比未知數還多時,有可能找不到符合方程組的解;當方程的數目少于未知數時,可能有無窮多組解。顯然當A不是方陣的時候肯定overdetermined(underdetermined)的。
A可能是奇異陣,這也是一個問題。
為了獲得在某種條件下的解,加入regularization項如下:
|| Ax – b ||^2 + || Rx ||^2
其中,||.||是Euclidean norm,即平方和的根。
在很多情況下,R可以直接取單位陣。加入R之后可解如下:
x = (A^TA + RTR)^(-1)A^Tb
?
一些另外的取法。令R = a*L,L是對稱Laplace-Beltrami算子。
L = V^(-1/2) * C * V^(-1/2)
V是一個voronoi area對角陣,C是一個系數對稱cotangentweight矩陣。(cot(Betai,j) + cot(Betai,j)^-)/2, Beta是相鄰三角形的角度。
?
可以把L作特征值分解,L = QBQ^T,Q為正交矩陣。因為正交矩陣不改變Frobenius norm,所以:
|| RU || = || aLU || = a|| QBQ^TU || = a|| BQ^TU||
一、過擬合:是指因過分強調對訓練樣本的效果導致過度擬合,使得對未知預測樣本效果就會變差的一種情況。
擬合度就是說這個模型和你想象的理想情況差多少。試想如果所有的點都在直線上,一點也沒有離開直線,那就說明擬合度很好,是1。就是能夠完全解釋。而現實情況肯定沒有這樣的。就比如你的努力程度和歷次考試成績,雖然越努力成績越好,但是你不能保證自己沒有失誤 啊。這個失誤就是殘差,但是失誤肯定不是主要部分,所以R平方還是很大的。R方沒有很明確的界限,說什么就是好什么就是不好,有的時候時間序列的擬合程度都不是很好,甚至只有0.3到0.4,所 以要綜合來看,沒有很確定的界限二、什么情況下出現過擬合:
? 當你擬合的函數中,一些特征權重階數越高時,過度擬合的情況越有可能發生,反之階數越小,過擬合發生概率越小,甚至會欠擬合。
? 比如有三個擬合函數:
? ? a0 +?a1x1+ a2x2?
? ? ?a0?+?a1x1+ a2x2?+ a3x12?+ a4x22
? ? a0?+?a1x1+ a2x2 + a3x12 + a4x22?+ a5x13 + a6x23
? 則最后這個過擬合的可能最高。
三、如何解決過擬合問題:
1. ?將那些特征權重階數高的特征刪除。比如在上面的例子中刪除特征x13?、x23。
? ? ?刪除方式有兩種:
一種:人工查看樣本集合篩選
? ? ?另一種:有機器學習的規則用于篩選這種特征,后續才會講到。
2. 正則化:特征全部保留,但特征系數進行最小優化。
? ? ?設一般情況下的成本函數為costFucntion(a,x,y)
? ? ?為了時特征系數減小,以使axj變小,新的成本函數為 costFunction_reg(a,x,y) = costFunction(a,x,y) + sum(aj2)?
我們將這種處理叫做正則化
新增的正則化項為 a02 + a12 + ... + an2, ?慣例上不要a02這項(他是1的系數),但即使加上效果影響不大。
四、正則化的線性回歸問題
? ? ?成本函數:costFunction(a,X,y) = 1/2m *sum((h(a,X)-y).^2), 其中h(a,X)=Xa;
? ? ? ? ? 正則化后:costFunctionReg(a,X,y) =?costFunction(a,X,y) + lambda*sum(aj2)
? ? ?梯度下降法:aj = aj - 1/m *alpha * ( h(a,X)-y ) * Xj
? ? ? ? ? 正則化后:aj?= aj?- 1/m *?alpha * ( h(a,X)-y ) * Xj ?-?1/m * alpha * lambda?* aj
? ? ?正規方程組解法 a =?(XT*X)-1*XT*y
? ? ? ? ? 正則化后:a =?(XT*X - lambda * I )-1*XT*y
五、logistic分類問題過擬合解決
成本函數:costFunction(ha(x),y) = -y*log( ha(x) ) - (1-y)*log( 1- ha(x))
正則化后:costFunctionReg(ha(x),y) =?costFunction(ha(x),y) ?+??lambda*sum(aj2)
梯度下降法:aj?=aj?-?1/m*(ha(x)-y?)* Xj;
正則化后:aj?=aj?-?1/m*(ha(x)-y?)* Xj?-1/m*lambda*a
總結
以上是生活随笔為你收集整理的处理过拟合问题-Regularization的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在Postfix中设置邮件转发
- 下一篇: 20个正则表达式