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

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時代這幾種常用的模型優(yōu)化方法,你需要掌握
這幾種常用的模型優(yōu)化方法,你需要掌握
2020-07-13
收藏

在數(shù)據(jù)分析過程中,我們會用到各種各樣的數(shù)據(jù)模型。但有些模型并不是完美的,存在者各種各樣的缺點(diǎn),置之不理很可能會影響最終的數(shù)據(jù)分析結(jié)果。這也就意味著,我們需要讓模型最優(yōu)化。通過模型優(yōu)化,訓(xùn)練出更好的模型,更好的進(jìn)行數(shù)據(jù)分析。下面,小編簡單整理了幾種常用的模型優(yōu)化方法,希望對大家有所幫助。

1. 梯度下降法(Gradient Descent)

梯度下降法——最早的、最容易,同時也是最長用到的模型優(yōu)化方法。

梯度下降法實(shí)現(xiàn)很容易,在目標(biāo)函數(shù)為凸函數(shù)的情況下,梯度下降法的解就是全局解。通常來說,其解是全局最優(yōu)解這一點(diǎn)并不能保證,而且梯度下降法,它的速度也并不是最快的。梯度下降法的優(yōu)化思想為:把當(dāng)前位置負(fù)梯度的方向當(dāng)做搜索方向,這是該這一方向是當(dāng)前位置的最快下降方向,所以又有”最速下降法“的叫法。梯度下降法越是接近目標(biāo)值,其步長就會越小,前進(jìn)也會越慢。

2. 牛頓法和擬牛頓法

a.牛頓法(Newton's method)

牛頓法其實(shí)是一種在實(shí)數(shù)域和復(fù)數(shù)域上,近似求解方程的方法。此方法使用f (x)函數(shù)的泰勒級數(shù)里的前面幾項(xiàng)來找尋方程f (x) = 0的根。收斂速度快是此方法最大的特點(diǎn)。

因?yàn)榕nD法是確定下一次的位置依靠的是當(dāng)前位置的切線,所以又有"切線法"這一很形象的名稱。

b.擬牛頓法(Quasi-Newton Methods)

擬牛頓法可以說是非線性優(yōu)化問題求解最常用的、最有效的方法了。擬牛頓法是20世紀(jì)50年代,由美國Argonne國家實(shí)驗(yàn)室的物理學(xué)家W.C.Davidon提出的·,這一算法在當(dāng)時的時代,無疑是非線性優(yōu)化領(lǐng)域最具有創(chuàng)造性的發(fā)明之一了。

擬牛頓法的本質(zhì)思想為:對牛頓法每次需要求解復(fù)雜的Hessian矩陣的逆矩陣這一缺陷進(jìn)行改善。擬牛頓法使用正定矩陣來近似Hessian矩陣的逆,這樣在很大程度上減小了運(yùn)算的復(fù)雜度。擬牛頓法與梯度下降法相同,只對每一步迭代時知道目標(biāo)函數(shù)的梯度有要求。通過測量梯度的變化,構(gòu)造出一個目標(biāo)函數(shù)的模型,并使之足以產(chǎn)生超線性收斂性。而且相比牛頓法,擬牛頓法并不需要二階導(dǎo)數(shù)的信息,所以有時反而比牛頓法更有效。

3. 共軛梯度法(Conjugate Gradient)

共軛梯度法是介于梯度下降法與牛頓法之間的一個模型優(yōu)化方法,只需要利用一階導(dǎo)數(shù)信息,但卻改善了梯度下降法收斂速度慢這一缺陷,同時又克服了,牛頓法需要存儲和計(jì)算Hesse矩陣,并求逆的缺點(diǎn)。共軛梯度法既能解決大型線性方程組問題,又是解大型非線性最優(yōu)化最有用的算法之一。因?yàn)楣曹椞荻确ň哂兴璐鎯α啃?,步收斂性,高穩(wěn)定性,不需要任何外來參數(shù)的優(yōu)點(diǎn),在各種模型優(yōu)化方法中,是極為重要的一種。

4. 啟發(fā)式優(yōu)化方法

啟發(fā)式優(yōu)化方法指的是:人在解決問題時,所采取的一種根據(jù)經(jīng)驗(yàn)規(guī)則進(jìn)行發(fā)現(xiàn)的方法。這一方法特點(diǎn)是,當(dāng)解決問題時,可以利用過去的經(jīng)驗(yàn),選擇行之有效的方法,而并不是以系統(tǒng)的、確定的步驟去找尋答案。啟發(fā)式優(yōu)化方法有很多種類,其中最為經(jīng)典的有:模擬退火方法、遺傳算法、蟻群算法以及粒子群算法等等。

數(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)的第一個參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗(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ì)時完成 $(".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); }