欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談SciPy中的optimize.minimize實(shí)現(xiàn)受限優(yōu)化問(wèn)題

 更新時(shí)間:2020年02月29日 12:55:40   作者:lmb633  
今天小編就為大家分享一篇淺談SciPy中的optimize.minimize實(shí)現(xiàn)受限優(yōu)化問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

問(wèn)題描述:有一批樣本x,每個(gè)樣本都有幾個(gè)固定的標(biāo)簽,如(男,24歲,上海),需要從中抽取一批樣本,使樣本總的標(biāo)簽比例滿足分布P(x),如(男:女=49%:51%、20歲:30歲=9%:11%、..........)

采用KL-散度作為優(yōu)化目標(biāo)函數(shù)。

KL-散度又叫相對(duì)熵

KL-散度在機(jī)器學(xué)習(xí)中,P用來(lái)表示樣本的真實(shí)分布,比如[1,0,0]表示當(dāng)前樣本屬于第一類。Q用來(lái)表示模型所預(yù)測(cè)的分布,比如[0.7,0.2,0.1]

KL-散度直觀的理解就是如果用P來(lái)描述樣本,那么就非常完美。而用Q來(lái)描述樣本,雖然可以大致描述,但是不是那么的完美,信息量不足,需要額外的一些“信息增量”才能達(dá)到和P一樣完美的描述。如果我們的Q通過(guò)反復(fù)訓(xùn)練,也能完美的描述樣本,那么就不再需要額外的“信息增量”,Q等價(jià)于P。

公式:

使用SciPy中的optimize.minimize來(lái)進(jìn)行優(yōu)化。

def minimize(fun, x0, args=(), method=None, jac=None, hess=None,
    hessp=None, bounds=None, constraints=(), tol=None,
    callback=None, options=None):

幾個(gè)重要的參數(shù):

fun:目標(biāo)函數(shù)(he objective function to be minimized);

x0:參數(shù)初始值(Initial guess. Array of real elements of size (n,));

bounds:參數(shù)取值范圍限制(Bounds on variables for L-BFGS-B, TNC, SLSQP and trust-constr methods.)

constraints:約束函數(shù)(Constraints definition (only for COBYLA, SLSQP and trust-constr)

Constraints for COBYLA, SLSQP are defined as a list of dictionaries.
Each dictionary with fields:
 
 type : str
  Constraint type: 'eq' for equality, 'ineq' for inequality.
 fun : callable
  The function defining the constraint.
 jac : callable, optional
  The Jacobian of `fun` (only for SLSQP).
 args : sequence, optional
  Extra arguments to be passed to the function and Jacobian.
)

tol : 目標(biāo)函數(shù)誤差范圍,控制迭代結(jié)束(optional Tolerance for termination. For detailed control, use solver-specific options.) options : 其他一些可選參數(shù)(dict, optional A dictionary of solver options. All methods accept the following generic options:)

求解過(guò)程:

定義優(yōu)化函數(shù):

def obj_function(x): 其中x為要優(yōu)化的變量,在本問(wèn)題中有480類的樣本(如:男,24歲,上海),每類樣本10-1000個(gè)不等,x為每類抽取的比例。要從中抽取50000個(gè)樣本,滿足22個(gè)約束條件(男:女=50%:50%、20歲:30歲=9%:11%等等)。

例如:男性要占總樣本的50%,則

選擇優(yōu)化函數(shù)。SciPy中可以使用bounds參數(shù)的算法有:L-BFGS-B, TNC, SLSQP and trust-constr,可以使用constraints 參數(shù)的算法有: COBYLA, SLSQP and trust-constr

調(diào)參:optimize.minimize有統(tǒng)一的參數(shù),但每個(gè)優(yōu)化算法都有自己特有的參數(shù),可以看源碼中的參數(shù)列表。

運(yùn)行:res = optimize.minimize(sample_fun, np.array(x0), bounds=bound, method='L-BFGS-B', tol=1e-11, options={'disp': True, 'maxiter': 300, 'maxfun': 1500000}),最終的結(jié)果保存在res.x中

如果程序沒(méi)達(dá)到指定的迭代次數(shù)就停止,可能有兩種原因:

STOP: TOTAL NO. of f AND g EVALUATIONS EXCEEDS LIMIT 增大參數(shù)maxfun;

CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH 調(diào)小參數(shù)tol

以上這篇淺談SciPy中的optimize.minimize實(shí)現(xiàn)受限優(yōu)化問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python手機(jī)號(hào)碼歸屬地查詢代碼

    Python手機(jī)號(hào)碼歸屬地查詢代碼

    這篇文章主要介紹了Python手機(jī)號(hào)碼歸屬地查詢代碼的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • Python包管理工具pip用法詳解

    Python包管理工具pip用法詳解

    本文詳細(xì)講解了Python包管理工具pip的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Python的線程之線程同步

    Python的線程之線程同步

    這篇文章主要為大家介紹了Python線程同步,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • python 中的list和array的不同之處及轉(zhuǎn)換問(wèn)題

    python 中的list和array的不同之處及轉(zhuǎn)換問(wèn)題

    python中的list是python的內(nèi)置數(shù)據(jù)類型,list中的數(shù)據(jù)類不必相同的,而array的中的類型必須全部相同。這篇文章給大家介紹了python 中的list和array的不同之處及轉(zhuǎn)換問(wèn)題,需要的朋友參考下吧
    2018-03-03
  • Python代碼縮進(jìn)和測(cè)試模塊示例詳解

    Python代碼縮進(jìn)和測(cè)試模塊示例詳解

    這篇文章主要給大家介紹了關(guān)于Python代碼縮進(jìn)和測(cè)試模塊的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • pandas處理缺失值的10種策略

    pandas處理缺失值的10種策略

    使用強(qiáng)大的Pandas庫(kù)處理數(shù)據(jù)中的缺失值是邁向數(shù)據(jù)清洗高手的第一步,本文主要介紹了pandas處理缺失值的10種策略,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • python捕獲警告的三種方法

    python捕獲警告的三種方法

    這篇文章主要介紹了python捕獲警告的三種方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • python中websockets與主線程傳遞參數(shù)的實(shí)現(xiàn)

    python中websockets與主線程傳遞參數(shù)的實(shí)現(xiàn)

    本文主要介紹了python中websockets與主線程傳遞參數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Windows系統(tǒng)下Chromedriver.exe安裝及配置詳細(xì)教程

    Windows系統(tǒng)下Chromedriver.exe安裝及配置詳細(xì)教程

    ChromeDriver.exe是一款實(shí)用的chrome瀏覽器驅(qū)動(dòng)工具,能夠用于自動(dòng)化測(cè)試、網(wǎng)絡(luò)爬蟲(chóng)和操作瀏覽器,其主要作用是模擬瀏覽器操作,下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下Chromedriver.exe安裝及配置的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • python?隨機(jī)生成emoji表情的方法實(shí)現(xiàn)

    python?隨機(jī)生成emoji表情的方法實(shí)現(xiàn)

    本文主要介紹了python?隨機(jī)生成emoji表情的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09

最新評(píng)論