偏差-方差分解,学习和验证曲线评估模型
偏差-方差分解
參考鏈接:https://www.zhihu.com/question/20448464
https://blog.csdn.net/simple_the_best/article/details/71167786
算法在不同的訓(xùn)練集的上學(xué)得的模型是不同的,即使訓(xùn)練集來自同一分布。對測試樣本xxx,令yDy_{D}yD?為x\mathbf{x}x在數(shù)據(jù)集上的標(biāo)記,yyy為x\mathbf{x}x的真實(shí)標(biāo)記,f(x;D)f(\mathbf{x};D)f(x;D)為訓(xùn)練集DDD上訓(xùn)練所得模型fff在x(x不一定∈D)\mathbf{x}(\mathbf{x}不一定\in D)x(x不一定∈D)上的預(yù)測輸出。
算法在不同數(shù)據(jù)集DDD上的期望預(yù)測為:fˉ(x)=ED[f(x;D)]\bar{f}(x)=E_{D}[f(x;D)]fˉ?(x)=ED?[f(x;D)]
上式為從不同訓(xùn)練集DDD上訓(xùn)練的不同的fff,對輸入的x\mathbf{x}x的預(yù)測值的期望。
泛化誤差:
以回歸問題為例,模型的平方誤差期望為:err(x)=ED[(yD?f(x;D))2]err(\mathbf{x})=E_{D}[(y_{D}-f(\mathbf{x};D))^{2}]err(x)=ED?[(yD??f(x;D))2]
上式為從不同訓(xùn)練集DDD上訓(xùn)練的不同的fff,對輸入的x\mathbf{x}x的預(yù)測值誤差的期望。
偏差:模型期望預(yù)測值與真實(shí)值之間的偏離程度,刻畫了模型的擬合能力。
bias2(x)=(fˉ(x)?y)2bias^{2}(x)=(\bar{f}(x)-y)^{2}bias2(x)=(fˉ?(x)?y)2
方差:度量了相同樣本數(shù)量的不同訓(xùn)練集的變動所導(dǎo)致的學(xué)習(xí)性能變化,刻畫了數(shù)據(jù)擾動所造成的影響。
var(x)=ED[(f(x;D)?fˉ(x))2]var(x)=E_{D}[(f(x;D)-\bar{f}(x))^{2}]var(x)=ED?[(f(x;D)?fˉ?(x))2]
噪聲: 樣本在數(shù)據(jù)集中的標(biāo)記與真實(shí)標(biāo)記的誤差。表示了算法期望泛化誤差的下限,刻畫了問題本身的難度。因?yàn)榧僭O(shè)數(shù)據(jù)很爛,噪聲高,此時(shí)模型再厲害也很難學(xué)習(xí)好,造成了該問題很難解決。ε2=ED[(yD?y)2]\varepsilon^{2}=E_{D}[(y_{D}-y)^{2}]ε2=ED?[(yD??y)2]
為便于討論,假定無噪聲,ED[yD?y]=0E_{D}[y_{D}-y]=0ED?[yD??y]=0。對算法的期望泛化誤差進(jìn)行分解:
上式推理中:ED[2(f(x;D)?fˉ(x))(fˉ(x)?yD)]=0E_{D}[2(f(\bm{x};D)-\bar{f}(\bm{x}))(\bar{f}(\bm{x})-y_{D})]=0ED?[2(f(x;D)?fˉ?(x))(fˉ?(x)?yD?)]=0,展開過程如下:
ED[f(x;D)fˉ(x)?f(x;D)yD?fˉ2(x)+fˉ(x)yD)]=ED[f(x;D)fˉ(x)?fˉ2(x)]+ED[fˉ(x)yD?f(x;D)yD]=fˉ(x)ED[f(x;D)]?fˉ2(x)+fˉ(x)ED(yD)?ED[f(x;D)yD]=fˉ2(x)?fˉ2(x)+fˉ(x)ED(yD)?fˉ(x)ED(yD)=0E_{D}[f(\bm{x};D)\bar{f}(\bm{x})-f(\bm{x};D)y_{D}-\bar{f}^{2}(\bm{x})+\bar{f}(\bm{x})y_{D})] \\ =E_{D}[f(\bm{x};D)\bar{f}(\bm{x})-\bar{f}^{2}(\bm{x})]+E_{D}[\bar{f}(\bm{x})y_{D}-f(\bm{x};D)y_{D}] \\ =\bar{f}(\bm{x})E_{D}[f(\bm{x};D)]-\bar{f}^{2}(\bm{x})+\bar{f}(\bm{x})E_{D}(y_{D})-E_{D}[f(\bm{x};D)y_{D}]\\ =\bar{f}^{2}(\bm{x})-\bar{f}^{2}(\bm{x})+\bar{f}(\bm{x})E_{D}(y_{D})-\bar{f}(\bm{x})E_{D}(y_{D})=0ED?[f(x;D)fˉ?(x)?f(x;D)yD??fˉ?2(x)+fˉ?(x)yD?)]=ED?[f(x;D)fˉ?(x)?fˉ?2(x)]+ED?[fˉ?(x)yD??f(x;D)yD?]=fˉ?(x)ED?[f(x;D)]?fˉ?2(x)+fˉ?(x)ED?(yD?)?ED?[f(x;D)yD?]=fˉ?2(x)?fˉ?2(x)+fˉ?(x)ED?(yD?)?fˉ?(x)ED?(yD?)=0
泛化誤差可分解為偏差、方差和噪聲之和。偏差-方差分解說明,為了取得好的泛化性能,則需使偏差較小,能夠充分?jǐn)M合數(shù)據(jù),并且使方差較小,使得數(shù)據(jù)擾動產(chǎn)生的影響小。
偏差與方差是有沖突的,稱為偏差-方差窘境(bias-variance dilemma).在訓(xùn)練不足時(shí),模型的擬合能力不強(qiáng),訓(xùn)練數(shù)據(jù)的擾動不足以使得模型產(chǎn)生顯著變化,此時(shí)偏差在主導(dǎo)了泛化誤差;隨著訓(xùn)練程度的加深,學(xué)習(xí)器的擬合能力增強(qiáng),訓(xùn)練數(shù)據(jù)產(chǎn)生的擾動漸漸能被漸漸能被學(xué)到,方差主導(dǎo)了泛化錯誤率;在訓(xùn)練程度充足時(shí),模型的擬合能力非常強(qiáng),訓(xùn)練數(shù)據(jù)的發(fā)生的輕微擾動都會使得模型發(fā)生顯著變化。
如圖所示為多項(xiàng)式的次數(shù)與誤差的關(guān)系。
高偏差:相當(dāng)于圖中的左側(cè)。
Jtrain(θ)較大,Jtrain(θ)≈JCV(θ)J_{train}(\theta)較大,J_{train}(\theta) \approx J_{CV}(\theta)Jtrain?(θ)較大,Jtrain?(θ)≈JCV?(θ)
高方差:相當(dāng)于圖中的右側(cè)。
Jtrain(θ)較小,Jtrain(θ)?JCV(θ)J_{train}(\theta)較小,J_{train}(\theta) \ll J_{CV}(\theta)Jtrain?(θ)較小,Jtrain?(θ)?JCV?(θ)
訓(xùn)練得到的模型太擬合訓(xùn)練數(shù)據(jù)了。不同的訓(xùn)練數(shù)據(jù)訓(xùn)練的模型效果波動很大。
#學(xué)習(xí)曲線
參考:http://scikit-learn.org/stable/modules/learning_curve.html#learning-curve
學(xué)習(xí)曲線即為準(zhǔn)確率隨訓(xùn)練樣本數(shù)量的變化曲線。更多的訓(xùn)練樣本有助于降低過擬合程度,在實(shí)踐中,收集更多的數(shù)據(jù)會帶來高昂的成本。通過將模型的訓(xùn)練及驗(yàn)證準(zhǔn)確率看作是訓(xùn)練數(shù)據(jù)集大小的函數(shù),并繪制圖像,可以很容易看出收集更多的數(shù)據(jù)是否有助于解決問題。
使用威斯康星乳腺癌數(shù)據(jù)集繪制學(xué)習(xí)曲線:
從圖中可以看出,數(shù)據(jù)集樣本的數(shù)量在300~350之間時(shí),泛化能力最強(qiáng)。模型在數(shù)據(jù)集較小的情況下,隨著樣本數(shù)量的增多訓(xùn)練準(zhǔn)確率下降,說明模型陷入了過擬合。在250樣本數(shù)量之后,模型趨于飽和和穩(wěn)定,并具有輕微的過擬合現(xiàn)象。
#驗(yàn)證曲線
驗(yàn)證曲線是準(zhǔn)確率與模型超參數(shù)之間的關(guān)系,可以從關(guān)系中看出超參數(shù)在什么時(shí)候泛化能力最強(qiáng),以及什么時(shí)候會陷入欠擬合或者過擬合。
使用邏輯斯諦回歸中的正則化參數(shù)CCC繪制驗(yàn)證曲線:
從圖中可以看出,最優(yōu)點(diǎn)在C=0.1附件。C值較小時(shí),隨著C值越大,訓(xùn)練準(zhǔn)確率和驗(yàn)證準(zhǔn)確率逐漸上升,說明模型處于欠擬合;C值較大時(shí),隨著C值越大,訓(xùn)練準(zhǔn)確率逐漸上升,驗(yàn)證準(zhǔn)確率下降,說明模型處于過擬合。
總結(jié)
以上是生活随笔為你收集整理的偏差-方差分解,学习和验证曲线评估模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬虫实时更新数据_爬虫的增量
- 下一篇: 开发视频直播软件需要注重哪些功能?