工作中,很多场景下会用到xgboost模型,如风控、催收、营销、推荐等待。在用xgboost模型进行模型训练的时候,也经常用贝叶斯自动调参来搜索最优的参数。
现在把相关的代码贴出来,供大家参考。
目前是支持了xgboost和lightgbm模型,如果需要支持其他模型,感兴趣的朋友可以自己添加一下。
一、安装包
pip install bayesian-optimization
二、代码示例
GBDTModel类
我写了一个GBDTModel类,用来封装贝叶斯自动调参、模型训练、模型评估、模型保存、参数保存等代码,具体如下:
# -*-coding:utf-8 -*-
import os
import json
import pickle
import numpy as np
import xgboost as xgb
import lightgbm as lgb
from bayes_opt import BayesianOptimization
from sklearn.metrics import mean_absolute_error, roc_auc_score, accuracy_score, confusion_matrix
class GBDTModel(object):
def __init__(self, output_dir, n_thread=10, n_jobs