iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
AI & Data

紮實的ML機器學習原理~打造你對資料使用sklearn的靈敏度系列 第 21

DAY 21 「Scikit-Optimize 是一個用於黑盒優化的 Python 庫」來做分類啦~

  • 分享至 

  • xImage
  •  

再一個用於黑盒優化的 Python 庫~

pip install scikit-optimize
from skopt import gp_minimize
from skopt.space import Real
from skopt.utils import use_named_args

# 定義目標函數
@use_named_args(dimensions=[Real(-5, 5, name='x')])
def objective(x):
    return (x**2).sum()

# 進行優化
result = gp_minimize(objective, dimensions=[(-5, 5)])

# 輸出結果
print(f'Optimized value: {result.fun}')
print(f'Optimized point: {result.x}')

在這個案例中,我們首先導入了 Scikit-Optimize 庫,並定義了一個簡單的目標函數 objective,這里的目標是最小化 x^2 的和。我們使用了 @use_named_args 裝飾器將參數命名為 x。我們使用 gp_minimize 函數進行貝葉斯優化,傳遞了目標函數和搜索空間的維度

  • 黑盒函數優化:當目標函數是一個黑盒函數,無法直接觀測其數學形式時,可以考慮使用 Scikit-Optimize。
  • 高維空間:在高維空間中搜索最優解時,傳統的優化方法可能效率低下,而基於模型的優化方法(如貝葉斯優化)在高維空間中表現較好。
  • 噪聲環境:Scikit-Optimize 對噪聲魯棒,能夠在含有一定程度噪聲的優化問題中表現良好。

上一篇
DAY 20 「GPyOpt:一個用於貝葉斯優化的Python庫」來做分類啦~
下一篇
DAY 22 「超參數優化取決於多個因素」來做分類啦~
系列文
紮實的ML機器學習原理~打造你對資料使用sklearn的靈敏度30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言