丝袜人妻一区二区三区_少妇福利无码视频_亚洲理论片在线观看_一级毛片国产A级片

當(dāng)前位置:首頁 > 民俗文化

超參數(shù) 資源 | Python 環(huán)境下的自動(dòng)化機(jī)器學(xué)習(xí)超參數(shù)調(diào)優(yōu)

選自中等

機(jī)器學(xué)習(xí)算法的性能高度依賴于超參數(shù)的選擇,優(yōu)化機(jī)器學(xué)習(xí)的超參數(shù)是一項(xiàng)繁瑣而關(guān)鍵的任務(wù)。介紹了一個(gè)利用Hyperopt庫實(shí)現(xiàn)梯度提升機(jī)貝葉斯超參數(shù)優(yōu)化的完整實(shí)例,并重點(diǎn)介紹了其實(shí)現(xiàn)過程。

由于機(jī)器學(xué)習(xí)算法的性能高度依賴于超參數(shù)的選擇,因此優(yōu)化機(jī)器學(xué)習(xí)的超參數(shù)是一項(xiàng)繁瑣但至關(guān)重要的任務(wù)。人工調(diào)整占用了機(jī)器學(xué)習(xí)算法過程中的一些關(guān)鍵步驟,如特征工程和結(jié)果解釋。網(wǎng)格搜索和隨機(jī)搜索不會(huì)干擾這些步驟,但是需要大量的運(yùn)行時(shí)間,因?yàn)槔速M(fèi)時(shí)間去評估搜索空,不太可能找到最佳區(qū)域。如今,越來越多的超參數(shù)整定過程是通過自動(dòng)化方法來完成的,其目的是通過使用帶有策略的啟發(fā)式搜索在更短的時(shí)間內(nèi)找到最優(yōu)超參數(shù),除了初始設(shè)置之外,不需要額外的手動(dòng)操作。

貝葉斯優(yōu)化是一種基于模型的尋找函數(shù)最小值的方法。最近,貝葉斯優(yōu)化被應(yīng)用于機(jī)器學(xué)習(xí)超參數(shù)優(yōu)化。結(jié)果表明,該方法在測試集上表現(xiàn)較好,但需要的迭代次數(shù)比隨機(jī)搜索少。此外,一些Python庫的出現(xiàn),使得任何機(jī)器學(xué)習(xí)模型都更容易實(shí)現(xiàn)貝葉斯超參數(shù)調(diào)優(yōu)。

本文介紹了一個(gè)梯度提升機(jī)貝葉斯超參數(shù)整定的完整實(shí)例。在前面的一篇文章中,作者已經(jīng)概述了這個(gè)方法背后的概念,因此本文將重點(diǎn)關(guān)注實(shí)現(xiàn)過程。類似于大多數(shù)機(jī)器學(xué)習(xí)主題,讀者不需要了解所有細(xì)節(jié),但是了解基本原理可以幫助讀者更有效地使用這項(xiàng)技術(shù)!

本文的所有代碼都可以在GitHub上以Jupyter Notebook(https://GitHub . com/WillKoehrsen/hyperparameter-optimization)的形式獲得。

本文內(nèi)容:

貝葉斯優(yōu)化方法優(yōu)化問題的四個(gè)組成部分目標(biāo)函數(shù)域空間優(yōu)化算法結(jié)果的歷史數(shù)據(jù)優(yōu)化搜索結(jié)果搜索結(jié)果的可視化搜索的演化過程繼續(xù)搜索結(jié)語

貝葉斯優(yōu)化方法

簡單來說,貝葉斯優(yōu)化是基于過去對目標(biāo)的評價(jià)結(jié)果,通過建立代理函數(shù)(概率模型)來尋找目標(biāo)函數(shù)的最小值。代理函數(shù)比目標(biāo)函數(shù)更容易優(yōu)化,因此要評估的下一個(gè)輸入值是通過對代理函數(shù)應(yīng)用一些標(biāo)準(zhǔn)(通常是預(yù)期的提升)來選擇的。貝葉斯方法不同于隨機(jī)搜索或網(wǎng)格搜索,兩者都是利用過去的評估結(jié)果來選擇下一個(gè)要評估的值。他們的想法是通過根據(jù)過去表現(xiàn)良好的值選擇下一個(gè)輸入值來限制評估目標(biāo)函數(shù)的高成本。

對于超參數(shù)優(yōu)化,目標(biāo)函數(shù)是使用一組超參數(shù)的機(jī)器學(xué)習(xí)模型的驗(yàn)證誤差。其目標(biāo)是找出驗(yàn)證集中產(chǎn)生最小誤差的超參數(shù),并希望將這些結(jié)果推廣到測試集。評估目標(biāo)函數(shù)的成本是巨大的,因?yàn)樗枰靡唤M特定的超參數(shù)來訓(xùn)練機(jī)器學(xué)習(xí)模型。理想情況下,我們希望找到這樣一種方法,既能探索搜索空,又能限制耗時(shí)的超參數(shù)求值。貝葉斯超參數(shù)優(yōu)化使用不斷更新的概率模型,使得搜索過程“聚焦”于通過從過去的結(jié)果進(jìn)行推理來達(dá)到最優(yōu)超參數(shù)。

Python環(huán)境下有一些貝葉斯優(yōu)化庫,它們的目標(biāo)函數(shù)代理算法是不同的。本文將使用“Hyperopt”庫,該庫使用tree Parzen賦值器(TPE,https://papers . nips . cc/paper/4443-algorithms-for-hyper-parameter-optimization . pdf)作為搜索算法,其他Python庫也包括“Spearmint”目前這方面有很多有趣的研究,所以如果你對某個(gè)庫不滿意,可以嘗試其他選項(xiàng)!一個(gè)問題的一般結(jié)構(gòu)(本文要用到的結(jié)構(gòu))可以在不同的庫之間轉(zhuǎn)換,其句法差異非常小。

優(yōu)化問題的四個(gè)組成部分

貝葉斯優(yōu)化問題有四個(gè)組成部分:

1.目標(biāo)函數(shù):我們希望最小化的對象,它是指具有超參數(shù)的機(jī)器學(xué)習(xí)模型的驗(yàn)證誤差

2.domain 空之間:要搜索的超參數(shù)值

3.優(yōu)化算法:構(gòu)建代理模型并選擇下一個(gè)要評估的超參數(shù)值的方法

4.結(jié)果的歷史數(shù)據(jù):存儲(chǔ)的目標(biāo)函數(shù)評估結(jié)果,包括超參數(shù)和驗(yàn)證損失

通過以上四個(gè)步驟,我們可以優(yōu)化任意實(shí)函數(shù)(求最小值)。這是一個(gè)強(qiáng)大的抽象過程,可以幫助我們解決機(jī)器學(xué)習(xí)超參數(shù)整定之外的很多其他問題。

數(shù)據(jù)集

在這個(gè)例子中,我們將使用房車保險(xiǎn)數(shù)據(jù)集(https://www . kaggle . com/ucml/Caravan-Insurance-challenge),其目標(biāo)是預(yù)測客戶是否會(huì)購買保險(xiǎn)產(chǎn)品。這是一個(gè)有5800個(gè)訓(xùn)練觀察值和4000個(gè)測試點(diǎn)的監(jiān)督分類問題。由于這是一個(gè)不平衡的分類問題,本文中用于評估性能的指標(biāo)是接收機(jī)工作特性曲線(ROCAC)下的面積。ROCAC值越高越好。值為1表示模型是完美的。數(shù)據(jù)集如下:

一個(gè)數(shù)據(jù)集(CARAVAN)被標(biāo)記

由于超點(diǎn)是為了得到最小值,我們將從目標(biāo)函數(shù)返回“1-ROC AUC”來提高ROC AUC。

梯度提升模型

在本文中,我們不會(huì)過多討論梯度提升機(jī)的細(xì)節(jié)。以下是我們需要了解的基礎(chǔ)知識(shí):GBM是基于使用順序訓(xùn)練的弱學(xué)習(xí)者(多為決策樹)來構(gòu)建強(qiáng)學(xué)習(xí)者的綜合增強(qiáng)方法。GBM中有許多超參數(shù),它們控制著整個(gè)集成結(jié)構(gòu)和單個(gè)決策樹。選擇這里使用的決策樹(稱為評估器)數(shù)量的最有效方法之一是提前停止。LightGBM在Python環(huán)境中提供了一個(gè)快速簡單的GBM實(shí)現(xiàn)。

想了解更多 GBM 的細(xì)節(jié),這里有一篇高屋建瓴的文章:https://medium.com/mlreview/gradient-boosting-from-scratch-1e317ae4587d一篇技術(shù)論文:https://brage.bibsys.no/xmlui/bitstream/handle/11250/2433761/16128_FULLTEXT.pdf

除了必要的背景知識(shí),讓我們列出超參數(shù)優(yōu)化貝葉斯優(yōu)化問題的四個(gè)組成部分。

目標(biāo)函數(shù)

我們試圖最小化目標(biāo)函數(shù)。它的輸入是一組值——在這種情況下是GBM的超參數(shù),它的輸出是需要最小化的實(shí)值——交叉驗(yàn)證損失。Hyperopt將目標(biāo)函數(shù)視為一個(gè)黑盒,因?yàn)檫@個(gè)庫只關(guān)心輸入和輸出是什么。為了找到使損失最小的輸入值,算法不需要知道目標(biāo)函數(shù)的內(nèi)部細(xì)節(jié)!從高度抽象的層面(以偽代碼的形式),我們的目標(biāo)函數(shù)可以表示為:

散焦(超參數(shù)):

"""從超參數(shù)返回驗(yàn)證分?jǐn)?shù)" " "

模型=分類器(超參數(shù))

驗(yàn)證_損失=交叉驗(yàn)證(模型,訓(xùn)練_數(shù)據(jù))

returnvalidation_loss

在評估最終模型時(shí),要注意不要使用測試集上的損失,因?yàn)槲覀冎荒苁褂靡淮螠y試集。相反,我們評估驗(yàn)證集上的超參數(shù)。此外,我們使用K倍交叉驗(yàn)證,而不是將數(shù)據(jù)分成獨(dú)立的驗(yàn)證集。這種驗(yàn)證方法不僅保留了有價(jià)值的訓(xùn)練數(shù)據(jù),而且使我們能夠在測試集上獲得偏差較小的誤差估計(jì)。

不同模型的目標(biāo)函數(shù)的基本結(jié)構(gòu)是相同的:函數(shù)接收超參數(shù)作為輸入,并使用這些超參數(shù)返回交叉驗(yàn)證錯(cuò)誤。雖然本文的例子是針對GBM的,但是這種結(jié)構(gòu)也可以應(yīng)用到其他方法中。

下圖顯示了GBM的完整目標(biāo)函數(shù),它使用10倍交叉驗(yàn)證和早期停止機(jī)制:

importlightgbm aslgb

fromhyperopt導(dǎo)入狀態(tài)_確定

N_FOLDS = 10

#創(chuàng)建數(shù)據(jù)集

train_set = lgb。數(shù)據(jù)集(列車要素、列車標(biāo)簽)

散焦(參數(shù),n_folds = N_FOLDS):

" " "梯度增強(qiáng)機(jī)器超參數(shù)調(diào)整的目標(biāo)函數(shù)"/>

現(xiàn)在讓我們定義整個(gè)領(lǐng)域:

#定義搜索空間

space = {

class _ weight ':HP . choice(' class _ weight ',[ None,' balanced']),

boosting _ type ':HP . choice(' boosting _ type ',

[{ 'boosting_type': 'gbdt ',

subsample ':HP . uniform(' gdbt _ subsample ',0.5,1)},

{ 'boosting_type': 'dart ',

子樣本':hp.uniform( 'dart_subsample ',0.5,1)},

{ 'boosting_type': 'goss'}]),

num _ leaves ':HP . qun iform(' num _ leaves ',30,150,1),

learning _ rate ':HP . loguniform(' learning _ rate ',np.log( 0.01),np.log( 0.2)),

sub sample _ for _ bin ':HP . qun iform(' sub sample _ for _ bin ',20000,300000,20000),

min _ child _ samples ':HP . qun iform(' min _ child _ samples ',20,500,5),

reg _ alpha ':HP . uniform(' reg _ alpha ',0.0,1.0),

reg _ lambda ':HP . uniform(' reg _ lambda ',0.0,1.0),

col sample _ bytree:' HP . uniform(' col sample _ by _ tree ',0.6,1.0)

}

這里我們使用許多不同種類的域分布:

choice:類別變量quniform:離散均勻分布(在整數(shù)空間上均勻分布)uniform:連續(xù)均勻分布(在浮點(diǎn)數(shù)空間上均勻分布)loguniform:連續(xù)對數(shù)均勻分布(在浮點(diǎn)數(shù)空間中的對數(shù)尺度上均勻分布)

在定義增壓類型時(shí),有一個(gè)要點(diǎn)需要我們注意:

# boosting類型域

boosting _ type = { ' boosting _ type ':HP . choice(' boosting _ type ',

[{ 'boosting_type': 'gbdt ',

子樣本':hp.uniform('子樣本',0.5,1)},

{ 'boosting_type': 'dart ',

子樣本':hp.uniform('子樣本',0.5,1)},

{ 'boosting_type': 'goss ',

子樣本':1.0}])}

這里,我們使用一個(gè)條件字段,這意味著一個(gè)超參數(shù)的值依賴于另一個(gè)超參數(shù)的值。對于“高斯”型提升算法,GBM不能使用下采樣技術(shù)(為每次迭代選擇訓(xùn)練觀察數(shù)據(jù)的子樣本部分)。因此,如果升級類型為“goss”,則下采樣速率設(shè)置為1.0(不使用下采樣),否則設(shè)置為0.5-1.0。這個(gè)過程是使用嵌套域?qū)崿F(xiàn)的。

當(dāng)我們使用參數(shù)完全不同的機(jī)器學(xué)習(xí)模型時(shí),條件嵌套通常是有用的。條件嵌套允許我們根據(jù)“選擇”的不同值使用不同的超參數(shù)集。

現(xiàn)在已經(jīng)定義了域空,我們可以從中提取一個(gè)樣本來查看典型樣本的形式。當(dāng)我們采樣時(shí),因?yàn)樽訕颖咀畛跏乔短椎?,所以我們需要將其分配給頂層關(guān)鍵字。這個(gè)操作是通過Python字典的“get”方法實(shí)現(xiàn)的,默認(rèn)值為1.0。

#從整個(gè)空間取樣

示例=樣本(空間)

#默認(rèn)字典獲取方法

sub sample = example[' boosting _ type ']。get('子樣本',1.0)

#分配頂級密鑰

示例[ 'boosting_type'] =示例[' boosting _ type '][' boosting _ type ']

示例['子樣本'] =子樣本

例子

有必要重新分配嵌套的關(guān)鍵字,因?yàn)樘荻入娞轃o法處理嵌套的超參數(shù)字典。

最優(yōu)化算法

雖然從概念上來說,這是貝葉斯優(yōu)化中最困難的部分,但是在Hyperopt中創(chuàng)建一個(gè)優(yōu)化算法只需要一行代碼。使用樹Parzen估計(jì)器(TPE)的代碼如下:

fromhyperopt importtpe

#算法

tpe_algorithm = tpe .建議

這都是優(yōu)化算法的代碼!Hyperopt目前只支持TPE和隨機(jī)搜索,雖然其GitHub主頁聲稱還會(huì)開發(fā)其他方法。在優(yōu)化過程中,TPE算法根據(jù)過去的搜索結(jié)果構(gòu)建概率模型,并通過最大化期望提升(EI)來確定下一組目標(biāo)函數(shù)中要評估的超參數(shù)。

結(jié)果歷史數(shù)據(jù)

跟蹤這些結(jié)果不是絕對必要的,因?yàn)镠yperopt在算法內(nèi)部會(huì)這樣做。然而,如果我們想知道這背后發(fā)生了什么,我們可以使用“試驗(yàn)”對象,它將存儲(chǔ)基本的訓(xùn)練信息,還可以使用目標(biāo)函數(shù)返回的字典(包括損失“l(fā)oss”和參數(shù)“params”)。創(chuàng)建“試驗(yàn)”對象也只需要一行代碼:

來自hyperopt導(dǎo)入試驗(yàn)

#試驗(yàn)對象跟蹤進(jìn)度

貝葉斯試驗(yàn)=試驗(yàn)()

我們監(jiān)控長期培訓(xùn)進(jìn)度的另一種方法是在每次迭代中向csv文件寫入一行。這樣,所有搜索結(jié)果都存儲(chǔ)在磁盤上,以防止我們因意外事件(根據(jù)經(jīng)驗(yàn))而丟失“蹤跡”對象。我們可以使用“csv”庫來做到這一點(diǎn)。在開始培訓(xùn)之前,我們會(huì)打開一個(gè)新的csv文件,并將其寫入hearder:

importcsv

#保存第一個(gè)結(jié)果的文件

out _ file = ' GBM _ tritions . CSV '

of_connection = open(out_file,' w ')

writer = CSV . writer(of _ connection)

#將標(biāo)題寫入文件

writer . writer row([' loss ',' params ',' iteration ',' estimators ',' train_time'])

of_connection.close()

然后在目標(biāo)函數(shù)中,我們可以添加幾行代碼,在每次迭代中編寫csv文件(完整的目標(biāo)函數(shù)可以在筆記本中獲得。

#寫入csv文件(' a '表示追加)

of_connection = open(out_file,' a ')

writer = CSV . writer(of _ connection)

writer . writerrow([損失,參數(shù),迭代,n _ estimators,運(yùn)行時(shí)間)

of_connection.close()

寫csv文件意味著我們可以通過在培訓(xùn)時(shí)打開文件來檢查進(jìn)度(不是在Excel文件中,因?yàn)镋xcel在Python環(huán)境中會(huì)產(chǎn)生錯(cuò)誤。使用bash中的“tail out_file.csv”操作查看文檔的最后一行。)

優(yōu)化

當(dāng)我們完成以上四個(gè)部分后,我們可以通過“fmin”來優(yōu)化它們:

fromhyperopt importfmin

MAX_EVALS = 500

#優(yōu)化

best = fmin(fn = objective,space = space,algo = TPE . advise,

max_evals = MAX_EVALS,trials = bayes _ trials)

在每次迭代中,優(yōu)化算法從基于先前結(jié)果構(gòu)建的代理函數(shù)中選擇新的超參數(shù)值,并在目標(biāo)函數(shù)中計(jì)算這些值。然后用“MAX_EVALS”對目標(biāo)函數(shù)求值,代理函數(shù)根據(jù)新的結(jié)果不斷更新。

結(jié)果

從“fmin”返回的最佳對象包含對目標(biāo)函數(shù)產(chǎn)生最小損失的超參數(shù):

有了這些超參數(shù),我們就可以用它們在完整的訓(xùn)練數(shù)據(jù)上訓(xùn)練模型,然后對測試數(shù)據(jù)進(jìn)行評估(記住我們在評估最終模型時(shí)只能使用測試集一次)。至于評價(jià)者的數(shù)量,我們可以用交叉驗(yàn)證中早期停止時(shí)返回?fù)p失最小的評價(jià)者的數(shù)量。最終結(jié)果如下:

作為參考,500輪隨機(jī)搜索返回的模型在測試集中的ROC AUC得分為0.7232,在交叉驗(yàn)證中的得分為0.76850。測試集上未優(yōu)化默認(rèn)模型的ROC AUC分?jǐn)?shù)為0.7143。

當(dāng)我們查看結(jié)果時(shí),我們需要記住以下要點(diǎn):

最優(yōu)的超參數(shù)在交叉驗(yàn)證中表現(xiàn)最好,但并不一定在測試數(shù)據(jù)上表現(xiàn)最好。當(dāng)我們使用交叉驗(yàn)證時(shí),我們希望這些結(jié)果能夠泛化至測試數(shù)據(jù)上。即使使用 10 折交叉驗(yàn)證,超參數(shù)調(diào)優(yōu)還是會(huì)對訓(xùn)練數(shù)據(jù)過度擬合。交叉驗(yàn)證取得的最佳得分遠(yuǎn)遠(yuǎn)高于在測試數(shù)據(jù)上的得分。隨機(jī)搜索可能由于運(yùn)氣好而返回更好的超參數(shù)(重新運(yùn)行 notebook 就可能改變搜索結(jié)果)。貝葉斯優(yōu)化不能保證找到更好的超參數(shù),并且可能陷入目標(biāo)函數(shù)的局部最小值。

雖然貝葉斯優(yōu)化非常有效,但它不能解決我們所有的調(diào)優(yōu)問題。隨著搜索的進(jìn)行,算法將從探索-嘗試新的超參數(shù)值變?yōu)殚_發(fā)-使用超參數(shù)值來最小化目標(biāo)函數(shù)的損失。如果算法找到目標(biāo)函數(shù)的局部最小值,它可以集中于搜索接近局部最小值的超參數(shù)值,并且不會(huì)嘗試域空中遠(yuǎn)離局部最小值的其他值。隨機(jī)搜索不會(huì)受到這個(gè)問題的影響,因?yàn)樗粫?huì)專注于搜索任何值!

還有一點(diǎn)很重要,超參數(shù)優(yōu)化的效果會(huì)隨著數(shù)據(jù)集的變化而變化。本文使用了一個(gè)相對較小的數(shù)據(jù)集(約6000個(gè)訓(xùn)練觀測數(shù)據(jù)),所以調(diào)優(yōu)超參數(shù)的回報(bào)很小(得到更多的數(shù)據(jù)會(huì)更好的利用時(shí)間!考慮到所有這些因素,在這種情況下,我們可以得到:

在測試集上更好的性能更少的超參數(shù)調(diào)優(yōu)迭代次數(shù)

貝葉斯方法可以(雖然不總是)獲得比隨機(jī)搜索更好的調(diào)整結(jié)果。在接下來的幾節(jié)中,我們將看看貝葉斯超參數(shù)搜索的演化過程,并與隨機(jī)搜索進(jìn)行比較,從而了解貝葉斯優(yōu)化的工作原理。

搜索結(jié)果的可視化

通過繪制結(jié)果,我們可以直觀地了解超參數(shù)搜索過程中發(fā)生了什么。此外,將貝葉斯優(yōu)化與隨機(jī)搜索進(jìn)行比較有助于我們看到這些方法之間的差異。想知道這些圖是怎么畫出來的,隨機(jī)搜索是怎么實(shí)現(xiàn)的,可以參考項(xiàng)目筆記本。但是在這里我們將直接展示結(jié)果。(請注意,實(shí)際結(jié)果會(huì)隨著迭代次數(shù)的增加而改變,所以如果你運(yùn)行這個(gè)筆記本,你不應(yīng)該驚訝于得到不同的圖形。本節(jié)所有圖像均經(jīng)過500次迭代后獲得)。

首先,我們可以畫出隨機(jī)搜索和貝葉斯優(yōu)化中采樣的學(xué)習(xí)率“l(fā)earning_rate”的核密度估計(jì)圖。作為參考,我們也可以展示樣本的分布。垂直虛線表示學(xué)習(xí)率的最佳值(根據(jù)交叉驗(yàn)證獲得)。

我們將學(xué)習(xí)率定義為0.005-0.2之間的對數(shù)正態(tài)分布,貝葉斯優(yōu)化的結(jié)果與抽樣分布的結(jié)果相似。這說明我們定義的分布似乎適合這個(gè)任務(wù),雖然最優(yōu)值略高于我們放概率最大的位置。該結(jié)果可用于通知域之間的進(jìn)一步搜索空。

另一個(gè)超級參數(shù)是推廣類型。下圖顯示了隨機(jī)搜索和貝葉斯優(yōu)化過程中評估的每種類型的直方圖。因?yàn)殡S機(jī)搜索并不關(guān)心以往的搜索結(jié)果,所以我們期望每種推廣類型的使用次數(shù)大致相同。

根據(jù)貝葉斯算法評估結(jié)果的直方圖,“gbdt”比“dart”或“goss”更容易找到最優(yōu)值。同樣,這有助于為進(jìn)一步的搜索提供信息,無論是貝葉斯方法還是網(wǎng)格搜索。如果我們想進(jìn)行更精確的網(wǎng)格搜索,我們可以使用這些結(jié)果來定義一個(gè)更小的網(wǎng)格,重點(diǎn)關(guān)注最有可能找到最佳超參數(shù)的值。

現(xiàn)在我們有了這些結(jié)果,我們可以在貝葉斯優(yōu)化中查看所有參考分布、隨機(jī)搜索和數(shù)值超參數(shù)。垂直虛線表示每次搜索都是超參數(shù)的最佳值:

在大多數(shù)情況下(除了“子樣本_for_bin”),貝葉斯優(yōu)化搜索往往側(cè)重于搜索(設(shè)置更高的概率)在交叉驗(yàn)證中可以獲得最小損失的超參數(shù)值附近的值。這反映了使用貝葉斯方法進(jìn)行超參數(shù)整定的基本思想:花更多的時(shí)間評估更有可能達(dá)到最優(yōu)值的超參數(shù)值。

有些結(jié)果很有趣,可能有助于我們在未來定義一個(gè)搜索域空。例如,“reg_alpha”和“reg_lambda”似乎是互補(bǔ)的:如果其中一個(gè)值為高(接近1.0),另一個(gè)值將變低。我們不能保證這適用于不同的問題,但是通過研究這些結(jié)果,我們可以得到一些可能用于未來機(jī)器學(xué)習(xí)問題的思路!

搜索的進(jìn)化過程

隨著優(yōu)化的進(jìn)展,我們希望貝葉斯方法關(guān)注更有可能達(dá)到最佳超參數(shù)的值:在交叉驗(yàn)證中產(chǎn)生最低誤差的值。我們可以畫一個(gè)超參數(shù)域的迭代次數(shù)圖,看看是否有明顯的趨勢。

黑星代表最好的價(jià)值?!癱olsample_bytree”和“l(fā)earning_rate”隨著時(shí)間的推移而減少,這可以為我們今后的搜索提供指導(dǎo)。

最后,如果貝葉斯優(yōu)化是有效的,我們期望平均驗(yàn)證分?jǐn)?shù)會(huì)隨著時(shí)間越來越高(相反,損失會(huì)越來越小):

隨著時(shí)間的推移,貝葉斯超參數(shù)優(yōu)化的驗(yàn)證分?jǐn)?shù)會(huì)越來越高,這說明這種方法是在試圖獲得更好的超參數(shù)值(值得注意的是,這些值只是根據(jù)驗(yàn)證分?jǐn)?shù)就更好)。隨機(jī)搜索并沒有隨著迭代次數(shù)的增加而表現(xiàn)出性能的提高。

繼續(xù)搜索

如果對模型的性能不滿意,可以使用Hyperopt從上次結(jié)束的地方繼續(xù)搜索。我們只需要傳入同一個(gè)“Trials”對象,算法就會(huì)繼續(xù)搜索。

隨著算法的運(yùn)行,它將進(jìn)行更多的“利用”操作——選擇過去表現(xiàn)良好的值,而較少的“探索”操作——選擇新值。所以,不如從頭開始找,而不是從最后一個(gè)地方開始找。如果在第一次搜索中找到的最佳超參數(shù)真的是“最優(yōu)值”,我們期望下一次搜索會(huì)收斂到相同的值??紤]到這個(gè)高維問題和超參數(shù)之間復(fù)雜的相互作用,另一個(gè)搜索不太可能產(chǎn)生類似的超參數(shù)集。

經(jīng)過500輪迭代訓(xùn)練,最終模型在測試集上的ROC AUC評分為0.72736。(我們真的不應(yīng)該評價(jià)測試集上的第一個(gè)模型,只以驗(yàn)證分?jǐn)?shù)為依據(jù)。理想情況下,測試集應(yīng)該只使用一次,以測試算法在新數(shù)據(jù)上部署時(shí)的性能)。同樣,由于數(shù)據(jù)集的規(guī)模較小,這個(gè)問題在未來的超參數(shù)優(yōu)化中可能會(huì)得到一個(gè)逐漸減小的返回值,并最終在驗(yàn)證誤差中達(dá)到一個(gè)穩(wěn)定的值(任何模型對數(shù)據(jù)集的性能都有一個(gè)固有的局限性,因?yàn)殡[藏變量是不可測量的,并且存在噪聲數(shù)據(jù),這種情況稱為貝葉斯誤差)。

標(biāo)簽

我們可以利用貝葉斯優(yōu)化來完成機(jī)器學(xué)習(xí)模型的自動(dòng)超參數(shù)整定。與隨機(jī)搜索方法不同,貝葉斯優(yōu)化通過啟發(fā)式方法選擇下一個(gè)超級參數(shù),因此可以花費(fèi)更多的時(shí)間來評估可能的最優(yōu)值。最終的結(jié)果可能是,與隨機(jī)搜索或網(wǎng)格搜索相比,貝葉斯優(yōu)化對目標(biāo)函數(shù)的評估次數(shù)更少,對測試集的泛化能力更強(qiáng)。

本文利用Hyperopt在Python環(huán)境下逐步實(shí)現(xiàn)貝葉斯超參數(shù)優(yōu)化。雖然我們需要更加注意訓(xùn)練數(shù)據(jù)的過擬合,但是我們在測試集上改進(jìn)了梯度提升機(jī)的性能,超過了比較基線和隨機(jī)搜索方法。此外,我們還通過查看結(jié)果示意圖,看到了隨機(jī)搜索和貝葉斯優(yōu)化的區(qū)別,說明貝葉斯方法在交叉驗(yàn)證中會(huì)給損失較低的超參數(shù)值以較高的概率。

通過使用優(yōu)化問題的四個(gè)組成部分,我們可以使用Hyperopt來解決各種問題。貝葉斯優(yōu)化的基本組件也適用于大量實(shí)現(xiàn)其他算法的Python庫。從手動(dòng)調(diào)優(yōu)到隨機(jī)搜索或者網(wǎng)格搜索只是一個(gè)很小的進(jìn)步,但是如果你想把你的機(jī)器學(xué)習(xí)技術(shù)提升到一個(gè)新的水平,就需要自動(dòng)超參數(shù)調(diào)優(yōu)。貝葉斯優(yōu)化是一種可以在Python環(huán)境下使用的方法,比隨機(jī)搜索能返回更好的結(jié)果。希望你能有信心的開始把這種強(qiáng)大的技術(shù)應(yīng)用到你的機(jī)器學(xué)習(xí)問題上!

原地址:https://towards data ience . com/automated-machine-learning-hyperparameter-tuning-in-python-dfda 59 b 72 f 8a

這篇文章是為機(jī)器的核心編寫的。請聯(lián)系本微信官方賬號(hào)進(jìn)行授權(quán)。

1.《超參數(shù) 資源 | Python 環(huán)境下的自動(dòng)化機(jī)器學(xué)習(xí)超參數(shù)調(diào)優(yōu)》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。

2.《超參數(shù) 資源 | Python 環(huán)境下的自動(dòng)化機(jī)器學(xué)習(xí)超參數(shù)調(diào)優(yōu)》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請保留本站內(nèi)容來源地址,http://f99ss.com/guoji/1580090.html

上一篇

羞恥什么意思 羞恥paly是什么意思

下一篇

行走的荷爾蒙什么意思 行走的荷爾蒙是什么意思

邏輯函數(shù) 2017年最全的excel函數(shù)大全5—邏輯函數(shù)

  • 邏輯函數(shù) 2017年最全的excel函數(shù)大全5—邏輯函數(shù)
  • 邏輯函數(shù) 2017年最全的excel函數(shù)大全5—邏輯函數(shù)
  • 邏輯函數(shù) 2017年最全的excel函數(shù)大全5—邏輯函數(shù)

孕早期親子鑒定 懷孕初期如何親子鑒定?結(jié)果準(zhǔn)確度怎么樣?

  • 孕早期親子鑒定 懷孕初期如何親子鑒定?結(jié)果準(zhǔn)確度怎么樣?
  • 孕早期親子鑒定 懷孕初期如何親子鑒定?結(jié)果準(zhǔn)確度怎么樣?
  • 孕早期親子鑒定 懷孕初期如何親子鑒定?結(jié)果準(zhǔn)確度怎么樣?

第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 究竟是怎么一回事?

  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 究竟是怎么一回事?
  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 究竟是怎么一回事?
  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 究竟是怎么一回事?
桃花劫最后的結(jié)果 電視劇桃花劫結(jié)局

桃花劫最后的結(jié)果 電視劇桃花劫結(jié)局

雖然在電視劇《桃花劫》的大結(jié)局中姚家已經(jīng)沒落,但是和卻經(jīng)歷了數(shù)次的分離與融合,最終幸福地結(jié)為伉儷,并將攜手重建家園。終曲結(jié)束時(shí),曾云丹在先祖排名前承認(rèn)嚴(yán)蓉是姚家的繼承人,并將先祖的玉笛交給了嚴(yán)蓉。姚振盛負(fù)責(zé)史靜和嚴(yán)蓉,為他們舉行隆重?zé)崃业幕槎Y,讓嚴(yán)蓉向史靜致敬。在籌備婚禮的過程中,姚振盛打算燒掉趙...

第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 事件詳情始末介紹!

  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 事件詳情始末介紹!
  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 事件詳情始末介紹!
  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 事件詳情始末介紹!

第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 究竟發(fā)生了什么?

  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 究竟發(fā)生了什么?
  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 究竟發(fā)生了什么?
  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 究竟發(fā)生了什么?

第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 到底什么情況呢?

  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 到底什么情況呢?
  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 到底什么情況呢?
  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 到底什么情況呢?

第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 事情的詳情始末是怎么樣了!

  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 事情的詳情始末是怎么樣了!
  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 事情的詳情始末是怎么樣了!
  • 第25屆中國青年五四獎(jiǎng)?wù)略u選結(jié)果揭曉:衛(wèi)國戍邊英雄獲評五四獎(jiǎng)?wù)录w 事情的詳情始末是怎么樣了!