99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時(shí)代過擬合是如何產(chǎn)生的?有什么好的解決方法?
過擬合是如何產(chǎn)生的?有什么好的解決方法?
2020-07-23
收藏

機(jī)器學(xué)習(xí)中,相對于欠擬合,過擬合出現(xiàn)的頻次更高。這是因?yàn)?,假設(shè)某一數(shù)據(jù)集其對應(yīng)的模型為‘真’模型,我們通常是采用提高模型的復(fù)雜度的方法,來避免欠擬合現(xiàn)象的產(chǎn)生,但與此同時(shí),我們又很難把網(wǎng)絡(luò)設(shè)計(jì)成和‘真’模型一樣,所以最終網(wǎng)絡(luò)模型會因?yàn)閺?fù)雜度太高而產(chǎn)生過擬合。今天小編就給大家整理了過擬合產(chǎn)生的原因及一些相應(yīng)的解決方法,希望對大家機(jī)器學(xué)習(xí)中解決過擬合問題有所幫助。

一、什么是過擬合

過擬合定義:給定一個(gè)假設(shè)空間H,一個(gè)假設(shè)h屬于H,如果存在其他的假設(shè)h’屬于H,使得在訓(xùn)練樣例上h的錯(cuò)誤率比h’小,但在整個(gè)實(shí)例分布上h’比h的錯(cuò)誤率小,那么就說假設(shè)h過度擬合訓(xùn)練數(shù)據(jù)。

過擬合(overfiting / high variance)表現(xiàn)為:模型在訓(xùn)練集上表現(xiàn)很好,但是在測試集上表現(xiàn)較差。也就是說模型的泛化能力弱。

簡單理解過擬合,就是模型對訓(xùn)練數(shù)據(jù)的信息提取過多,不僅學(xué)習(xí)到了數(shù)據(jù)背后的規(guī)律,連數(shù)據(jù)噪聲都當(dāng)做規(guī)律學(xué)習(xí)了。

對比欠擬合理解起來會更容易:

二、過擬合產(chǎn)生原因


三、過擬合處理辦法

1、重新清洗數(shù)據(jù),過擬合出現(xiàn)也有可能是數(shù)據(jù)不純,這種情況下我們需要重新清洗數(shù)據(jù)。

2、數(shù)據(jù)增強(qiáng),也就是獲取和使用更多的數(shù)據(jù)集。給與模型足夠多的數(shù)據(jù)集,讓它在盡可能多的數(shù)據(jù)上進(jìn)行“觀察”和擬合,從而進(jìn)行不斷修正。但是需要注意的是,我們是不可能收集無限多的數(shù)據(jù)集的,所以通常的方法,就是對已有的數(shù)據(jù)進(jìn)行,添加大量的“噪音”,或者對圖像進(jìn)行銳化、對旋轉(zhuǎn)、明暗度進(jìn)行調(diào)整等。

3、采用正則化方法。加入正則化項(xiàng)就是在原來目標(biāo)函數(shù)的基礎(chǔ)上加入了約束。常用的正則化項(xiàng)有L1.L2.當(dāng)目標(biāo)函數(shù)的等高線和L1.L2正則化損失函數(shù)第一次相交時(shí),得到最優(yōu)解。

L1正則化項(xiàng)約束后的解空間為多邊形,這些多邊形的角和目標(biāo)函數(shù)的接觸機(jī)會遠(yuǎn)大于其他部分。就會造成最優(yōu)值出現(xiàn)在坐標(biāo)軸上,因此就會導(dǎo)致某一維的權(quán)重為0 ,產(chǎn)生稀疏權(quán)重矩陣,進(jìn)而防止過擬合。

L2正則化項(xiàng)約束后的解空間為圓形,圖像上的棱角圓滑了很多。一般最優(yōu)值不會在坐標(biāo)軸上出現(xiàn)。在最小化正則項(xiàng)時(shí),參數(shù)不斷趨向于0.最后得到的就是很小的參數(shù)。

4、采用dropout方法。

運(yùn)用了dropout方法,就相當(dāng)于訓(xùn)練了非常多的,僅僅只有部分隱層單元的神經(jīng)網(wǎng)絡(luò),每一個(gè)這種半數(shù)網(wǎng)絡(luò),都能夠給出一個(gè)分類結(jié)果,這些結(jié)果中,有正確的,也有錯(cuò)誤的。隨著訓(xùn)練的進(jìn)行,大多數(shù)半數(shù)網(wǎng)絡(luò)都能給出正確的分類結(jié)果。這樣一來,那些少數(shù)的錯(cuò)誤分類結(jié)果對于最終結(jié)果就不會哦造成大的影響。而且dropout通過減少神經(jīng)元之間復(fù)雜的共適應(yīng)關(guān)系,從而也提高了模型的泛化能力。

5、提前結(jié)束訓(xùn)練

也就是early stopping,在模型迭代訓(xùn)練時(shí),對訓(xùn)練精度(損失)和驗(yàn)證精度(損失)進(jìn)行記錄,如果模型訓(xùn)練的效果不能夠再提高,例如訓(xùn)練誤差一直降低,但是驗(yàn)證誤差卻不再降低甚至上升的情況,我們可以采用結(jié)束模型訓(xùn)練的方法。

6、集成學(xué)習(xí)

集成學(xué)習(xí)算法也可以有效的減輕過擬合。Bagging通過平均多個(gè)模型的結(jié)果,來降低模型的方差。Boosting不僅能夠減小偏差,還能減小方差。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }