lgb模型参数t调参(贝叶斯全局优化)

关于lgb模型参数的问题,可以采用贝叶斯全局优化来调参

import lightgbm as lgb
from bayes_opt import BayesianOptimization
import warnings
warnings.filterwarnings("ignore")

from sklearn.datasets import make_classification

X, y = make_classification(n_samples=10000,n_features=20,n_classes=2,random_state=2)
data = lgb.Dataset(X,y)

def lgb_cv(feature_fraction,bagging_fraction,min_data_in_leaf,max_depth,min_split_gain,num_leaves,lambda_l1,lambda_l2,num_iterations=1000):
        params = {'objective':'binary','num_iterations': num_iterations, 'early_stopping_round':50, 'metric':'l1'}
        params['feature_fraction'] = max(min(feature_fraction, 1), 0)
        params['bagging_fraction'] = max(min(bagging_fraction, 1), 0)
        params["min_data_in_leaf"] = int(round(min_data_in_leaf))
        params['max_depth'] = int(round(max_depth))
        params['min_split_gain'] = min_split_gain      
        params["num_leaves"] = int(round(num_leaves))
        params['lambda_l1'] = max(lambda_l1, 0)
        params['lambda_l2'] = max(lambda_l2, 0)
        
        cv_result = lgb.cv(params, data, nfold=5, seed=2, stratified=True, verbose_eval =50)
        return -(min(cv_result['l1-mean']))

lgb_bo = BayesianOptimization(
        lgb_cv,
        {'feature_fraction': (0.5, 1),
        'bagging_fraction': (0.5, 1),
        'min_data_in_leaf': (1,100),
        'max_depth': (3, 15),
         'min_split_gain': (0, 5),
         'num_leaves': (16, 128),
         'lambda_l1': (0, 100),
         'lambda_l2': (0, 100)}
    )        

lgb_bo.maximize(init_points=21,n_iter=90) #init_points表示初始点,n_iter代表迭代次数(即采样数)
print (lgb_bo.max)
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LGB(LightGBM)是一种基于决策树的梯度提升框架,具有高效、准确的特点,被广泛应用于机器学习和数据科学领域。下面是LGB模型中常用的参数及其含义: 1. `num_leaves`:决策树的最大叶子节点数,这是LGB模型中最重要的参数之一,通常取值在40-60之间。 2. `learning_rate`:学习率,每次迭代中每个树的权重缩减量,通常取值在0.01-0.1之间。 3. `max_depth`:决策树的最大深度,控制模型的复杂度和过拟合情况,通常取值在5-15之间。 4. `min_child_samples`:叶子节点最少样本数,控制过拟合情况,通常取值在20-100之间。 5. `subsample`:每个树的样本采样比例,通常取值在0.5-0.8之间。 6. `colsample_bytree`:每个树的特征采样比例,通常取值在0.5-0.8之间。 7. `reg_alpha`:L1正则化系数,控制模型的复杂度和过拟合情况。 8. `reg_lambda`:L2正则化系数,控制模型的复杂度和过拟合情况。 关于调参方法,通常采用网格搜索或贝叶斯优化等方法,通过交叉验证来确定最佳参数组合。具体步骤如下: 1. 确定模型的初始参数范围。 2. 采用交叉验证方法,在训练集上训练模型,并在验证集上评估模型的性能。 3. 根据模型的性能,调整参数范围,重新训练模型,并重新进行交叉验证。 4. 重复步骤3,直到达到最佳性能,得到最佳的参数组合。 需要注意的是,调参的过程需要耗费大量时间和计算资源,因此需要谨慎选择参数范围和调参方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值