lightGBMt和GridSearchCV调参代码
Posted hellobigorange
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lightGBMt和GridSearchCV调参代码相关的知识,希望对你有一定的参考价值。
def train(x_train, y_train, X_test, y_test, systemCode):
"""XGB"""
my_cv = TimeSeriesSplit(n_splits=5).split(x_train)
eval_set = [(X_test, y_test)]
cv_params = {'n_estimators':range(20,200,10),"max_depth":range(1,10,1),'num_leaves':range(10,100,5)}
params = {
#"boosting": "rf",
# "num_boost_round":100,# 迭代次数
'max_depth': 7,
'n_estimators': 200, # 基分类器个数
'num_leaves': 10, # 叶子节点数,由于lightGBM是leaves_wise生长,官方说法是要小于2^max_depth
'learning_rate': 0.1, # 学习速率
'feature_fraction': 1, # 建树的特征选择比例
'bagging_fraction': 0.7, # 建树的样本采样比例
}
model = lgb.LGBMRegressor(**params)
optimized_GBM = GridSearchCV(estimator=model, param_grid=cv_params, scoring='neg_mean_absolute_error', cv=my_cv,
n_jobs=6)
# eval_metric输出每一轮的训练情况
# early_stopping_rounds = 10 mae在10轮训练中没有提升,则停止
optimized_GBM.fit(np.array(x_train), np.array(y_train), eval_metric='mae',
eval_set=[(np.array(x_train), np.array(y_train)), (np.array(X_test), np.array(y_test))],
early_stopping_rounds=100)
# optimized_GBM.fit(np.array(x_train), np.array(y_train))
model = optimized_GBM.best_estimator_
print('参数的最佳取值:{0}'.format(optimized_GBM.best_params_))
print('最佳模型得分:{0}'.format(optimized_GBM.best_score_))
# model.fit(x_train, y_train, verbose=False)
# plot_importance(model)
# print(model)
return model
以上是关于lightGBMt和GridSearchCV调参代码的主要内容,如果未能解决你的问题,请参考以下文章
机器学习系列调参GridsearchCV随机森林GBDTLightGBM和XGBoost调参顺序,外加一些加速调参的小技巧(主要介绍坐标下降)
XGBoost模型调参:GridSearchCV方法网格搜索优化参数
sklearn学习8-----GridSearchCV(自动调参)