python超參數(shù)優(yōu)化的具體方法
1、手動(dòng)調(diào)參,但這種方法依賴于大量的經(jīng)驗(yàn),而且比較費(fèi)時(shí)。
許多情況下,工程師依靠試錯(cuò)法手工調(diào)整超參數(shù)進(jìn)行優(yōu)化,有經(jīng)驗(yàn)的工程師可以在很大程度上判斷如何設(shè)置超參數(shù),從而提高模型的準(zhǔn)確性。
2、網(wǎng)格化尋優(yōu),是最基本的超參數(shù)優(yōu)化方法。
利用這種技術(shù),我們只需要為所有超參數(shù)的可能性建立一個(gè)獨(dú)立的模型,評(píng)估每個(gè)模型的性能,選擇產(chǎn)生最佳結(jié)果的模型和超參數(shù)。
from sklearn.datasets import load_iris from sklearn.svm import SVC iris = load_iris() svc = SVR() from sklearn.model_selection import GridSearchCV from sklearn.svm import SVR grid = GridSearchCV( estimator=SVR(kernel='rbf'), param_grid={ 'C': [0.1, 1, 100, 1000], 'epsilon': [0.0001, 0.0005, 0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 5, 10], 'gamma': [0.0001, 0.001, 0.005, 0.1, 1, 3, 5] }, cv=5, scoring='neg_mean_squared_error', verbose=0, n_jobs=-1)
3、隨機(jī)尋優(yōu),可以更準(zhǔn)確地確定某些重要超參數(shù)的最佳值。
并非所有的超參數(shù)都有同樣的重要性,有些超參數(shù)的作用更加明顯。
知識(shí)點(diǎn)擴(kuò)充:
貝葉斯優(yōu)化方法
簡單地說,貝葉斯優(yōu)化通過基于過去對(duì)目標(biāo)的評(píng)估結(jié)果建立一個(gè)代理函數(shù)(概率模型)找到使得目標(biāo)函數(shù)最小的值。代理函數(shù)比目標(biāo)函數(shù)更易于優(yōu)化,因此下一個(gè)待評(píng)估的輸入值是通過對(duì)代理函數(shù)應(yīng)用某種標(biāo)準(zhǔn)(通常為預(yù)期提升)來選擇的。貝葉斯方法不同于隨機(jī)搜索或網(wǎng)格搜索,后兩者都使用了過去的評(píng)估結(jié)果來選擇接下來待評(píng)估的值。它們的思想是:通過根據(jù)過去表現(xiàn)良好的值選擇下一個(gè)輸入值來限制評(píng)價(jià)目標(biāo)函數(shù)的高昂開銷。
對(duì)于超參數(shù)優(yōu)化來說,其目標(biāo)函數(shù)為使用一組超參數(shù)的機(jī)器學(xué)習(xí)模型的驗(yàn)證誤差。它的目標(biāo)是找出在驗(yàn)證集上產(chǎn)生最小誤差的超參數(shù),并希望將這些結(jié)果泛化到測(cè)試集上去。對(duì)目標(biāo)函數(shù)評(píng)估的開銷是巨大的,因?yàn)樗枰?xùn)練帶有一組特定超參數(shù)的機(jī)器學(xué)習(xí)模型。理想情況下,我們希望找到這樣一方法,它既能探索搜索空間,又能限制耗時(shí)的超參數(shù)評(píng)估。貝葉斯超參數(shù)調(diào)優(yōu)使用一個(gè)不斷更新的概率模型,通過從過去的結(jié)果中進(jìn)行推理,使搜索過程「專注」于有可能達(dá)到最優(yōu)的超參數(shù)。
Python 環(huán)境下有一些貝葉斯優(yōu)化程序庫,它們目標(biāo)函數(shù)的代理算法有所區(qū)別。在本文中,我們將使用「Hyperopt」庫,它使用樹形 Parzen 評(píng)估器(TPE,https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf)作為搜索算法,其他的 Python 庫還包含「Spearmint」(高斯過程代理)和「SMAC」(隨即森林回歸)。目前在這個(gè)領(lǐng)域有大量有趣的研究,所以如果你對(duì)某一個(gè)庫不是很滿意,你可以試試其他的選項(xiàng)!針對(duì)某個(gè)問題的通用結(jié)構(gòu)(本文將使用的結(jié)構(gòu))可以在各個(gè)庫間進(jìn)行轉(zhuǎn)換,其句法差異非常小。
到此這篇關(guān)于python超參數(shù)優(yōu)化的具體方法的文章就介紹到這了,更多相關(guān)python超參數(shù)如何優(yōu)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python翻譯軟件實(shí)現(xiàn)代碼(使用google api完成)
這篇文章主要介紹了python結(jié)合google api完成的翻譯軟件實(shí)現(xiàn)代碼,大家參考使用2013-11-11使用pandas實(shí)現(xiàn)csv/excel sheet互相轉(zhuǎn)換的方法
今天小編就為大家分享一篇使用pandas實(shí)現(xiàn)csv/excel sheet互相轉(zhuǎn)換的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12Python實(shí)現(xiàn)多個(gè)視頻合成一個(gè)視頻的功能
這篇文章主要介紹了可以將多個(gè)視頻拼接為一個(gè)視頻的Python工具代碼,文中的代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,快來跟隨小編一起學(xué)習(xí)一下吧2021-12-12matlab、python中矩陣的互相導(dǎo)入導(dǎo)出方式
這篇文章主要介紹了matlab、python中矩陣的互相導(dǎo)入導(dǎo)出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python實(shí)現(xiàn)12種降維算法的示例代碼
數(shù)據(jù)降維算法是機(jī)器學(xué)習(xí)算法中的大家族,與分類、回歸、聚類等算法不同,它的目標(biāo)是將向量投影到低維空間,以達(dá)到某種目的如可視化,或是做分類。本文將利用Python實(shí)現(xiàn)12種降維算法,需要的可以參考一下2022-04-04python開發(fā)微信服務(wù)號(hào)消息推送示例
這篇文章主要為大家介紹了python開發(fā)微信服務(wù)號(hào)消息推送示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10python庫JsonSchema驗(yàn)證JSON數(shù)據(jù)結(jié)構(gòu)使用詳解
這篇文章主要為大家介紹了python庫JsonSchema驗(yàn)證JSON數(shù)據(jù)結(jié)構(gòu)的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05