本文主要是介绍Hyperopt工具包 贝叶斯优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Hyperopt工具包
一. Bayesian Optimization 贝叶斯优化四大步骤
- Objective 目标函数
- Domain space 指定参数空间
- Hyperparameter optimizationfunction 可选择的采样算法,随机或者贝叶斯优化
- Trials 记录结果的保存
1. Objective 自定义目标, 这里得有一个最小值
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inlinedef objective(x):f = np.poly1d([1, -3, -28, 29, 12, -22, 99]) # np.poly1d生成多项式, 如np.poly1d([2,3,4])生成2x^2 + 3x + 4return f(x) * 0.05x = 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 = tpe.</
这篇关于Hyperopt工具包 贝叶斯优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!