贝叶斯优化调整随机森林参数

‘’’
贝叶斯优化调调整随机森林分类实践
临时使用清华镜像源安装bayesian-optimization,代码如下(示例):
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple bayesian-optimization
下面这种也可以:
pip install bayesian-optimizatione -i https://pypi.tuna.tsinghua.edu.cn/simple

永久配置清华镜像源,代码如下(示例):
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

然后再使用以下代码安装:
pip install bayesian-optimization

贝叶斯调参主要分为五个步骤,构造黑盒函数、确定域空间、
实例化对象、确定迭代次数和搜索最优结果
‘’’

from bayes_opt import BayesianOptimization
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
X,y=load_digits(return_X_y=True)
X_train, X_test, y_train, y_test=train_test_split(X,y,
test_size=0.2,
random_state=180)
model = RandomForestClassifier()
model = model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print(‘默认参数下测试集评分:’)
print(score)

def black_box_function(n_estimators, min_samples_split,
max_features, max_depth):
res = RandomForestClassifier(n_estimators=int(n_estimators),
min_samples_split=int(min_samples_split),
max_features=min(max_features, 0.999), # float
max_depth=int(max_depth),
random_state=2
).fit(X_train, y_train).score(X_test, y_test)
return res

pbounds= {‘n_estimators’: (10, 250),
‘min_samples_split’: (2, 25),
‘max_features’: (0.1, 0.999),
‘max_depth’: (5, 15)}

optimizer = BayesianOptimization(
f=black_box_function,
pbounds=pbounds,
verbose=2, # verbose = 1 prints only when a maximum is observed, verbose = 0 is silent
random_state=1,
)
optimizer.maximize(
init_points=20, #执行随机搜索的步数
n_iter=100, #执行贝叶斯优化的步数
)
print(optimizer.max)
params=optimizer.max[‘params’]

model = RandomForestClassifier(n_estimators=int(params[‘n_estimators’]),
max_features=params[‘max_features’],
max_depth=int(params[‘max_depth’]),
min_samples_split=int(params[‘min_samples_split’]),
random_state=2)
model = model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print(‘最优参数测试集评分:’)
print(score)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值