CS229 7.1应用机器学习中的一些技巧
本文所講述的是怎么樣去在實踐中更好的應用機器學習算法,比如如下經驗風險最小化問題:
當求解最優的??后,發現他的預測誤差非常之大,接下來如何處理來使得當前的誤差盡可能的小呢?這里給出以下幾個選項,下面介紹的是如何在一下這些應對策略中選擇正確的方法來助力以上問題。
當模型的variance比較大時,可能存在過擬合,這時可以嘗試增多樣本或者減少特征或者增大正則參數。
當模型的bias比較大時,可能存在欠擬合,這時可以嘗試增加更多的特征或者增加多項特征或減小正則參數。
首先,一般的Mechine Learning問題,我們會把數據分為訓練集,交叉驗證集,測試集,比例分別為6:2:2.
這樣,即可以用一下三哥公式分別計算假設函數在三個集合上的損失:
接下來,用交叉驗證集合找到最優的??,用該??去到測試機上驗證來得到測試誤差Jerr():
bias. variance.
如果目前的算法表現不是很好Jcv或者Jtest很高,可以繪制如下關于bias與variance的圖來確定是哪里的問題,如果Jtrain與Jcv均過高,則為bais問題,模型還處于欠擬合的狀態,或Jtrain相對Jcv很低,則為variance問題。
正則化項??的選取問題,隨著??的增大,參數??的取值會越來越小,模型處于欠擬合狀態,偏差bais會越來越大,Jtrain也會隨之增大
在交叉驗證集合上,當??很小時,??取值很大,模型可能處于過擬合狀態,variance會很大,隨著??增大,Jcv會先減小到最小值,此處的最小值點即為bais與variance比較平衡的地方。當??繼續增大,Jcv也會便也會開始增大,最終會導致bais比較大。所以此處Jcv處于最小值的情況下才是最優的??。
增加訓練數據
首先注意,隨著訓練數據的增多,根據6 2 2 的比例,交叉驗證集 與 測試集的數據均會增加。
1)當使用一個相對合適的模型時,當數據比較少時,Jtrain會完美擬合訓練數據,但此時Jcv會比較大,因為數據少得話模型很難范化到交叉驗證集,數據的增加會導致Jtrain增大,Jcv減小,此時增多數據的效果會越來越好。
? ??
2)當使用一個欠擬合的模型時,會導致Jtrain非常之大,此時,增大數據量不會有任何效果,因為Jcv不會變的更小,模型無論在測試集還是訓練集上都不會有很好的效果。
3)當使用一個過擬合的模型時,當數據較少時,Jtrain與Jcv之間的間隔會比較大,此時增大數據量,效果會有一些提升,Jtrain與Jcv的間隔會減小,這也就是所謂的增多訓練數據來避免過擬合。
轉載于:https://www.cnblogs.com/alan-blog-TsingHua/p/10024683.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的CS229 7.1应用机器学习中的一些技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis使用statement.g
- 下一篇: elasticjob disable J