Hyperopt工具包 贝叶斯优化

这篇博客介绍了Hyperopt工具包在机器学习中的应用,详细阐述了贝叶斯优化的四个步骤:自定义目标、指定参数空间、选择采样算法和记录实验结果。通过示例展示了贝叶斯优化过程,包括最佳损失值和迭代趋势,并对比了随机优化的结果。最后,讨论了如何选择更合适的参数空间来提升优化效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hyperopt工具包

一. Bayesian Optimization 贝叶斯优化四大步骤

  1. Objective 目标函数
  2. Domain space 指定参数空间
  3. Hyperparameter optimizationfunction 可选择的采样算法,随机或者贝叶斯优化
  4. Trials 记录结果的保存
1. Objective 自定义目标, 这里得有一个最小值
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

def objective(x):
    f = np.poly1d([1, -3, -28, 29, 12, -22, 99]) 
    # np.poly1d生成多项式, 如np.poly1d([2,3,4])生成2x^2 + 3x + 4
    return f(x) * 0.05

x = np.linspace(-5, 7, 10000)
y = objective(x)

miny = min(y)
minx = x[np.argmin(y)]

plt.figure(figsize = (8, 6))
plt.style.use('fivethirtyeight')
plt.title('Objective Function')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.vlines(minx, min(y)-50, max(y), linestyles='--', colors='r')
plt.plot(x, y)
print('Minimum of %0.4f occurs at %0.4f' % (miny, minx))

Minimum of -394.7324 occurs at 5.4266
在这里插入图片描述

2. Domain 参数取值范围
from hyperopt import hp
space = hp.uniform('x', -5, 7)

from hyperopt.pyll.stochastic import sample
samples = []
for _ in range(10000):
    samples.append(sample(space))

plt.hist(samples, bins = 20, edgecolor = 'black')
plt.xlabel('x'); plt.ylabel('Frequency'); plt.title('Domain Space')

在这里插入图片描述

3. 选择采样算法

Hyperparameter Optimization Algorithm 随机或者贝叶斯优化

from hyperopt import rand, tpe
tpe_algo 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值