当前位置:   article > 正文

使用GridSearchCV网格搜索超参调优_lgbm的gridsearchcv超参数调整

lgbm的gridsearchcv超参数调整
  1. from sklearn.model_selection import StratifiedKFold # 导入K折验证工具
  2. from sklearn.model_selection import GridSearchCV # 导入网格搜索工具
  3. kfold = StratifiedKFold(n_splits=10) # 10折验证,将数据集划分为10个子集
  4. rf = RandomForestClassifier() # 创建一个随机森林模型
  5. # 设置随机森林模型的参数网格,通过交叉验证寻找最优参数组合
  6. rf_param_grid = {
  7. "max_depth": [None], # 决策树的最大深度,None表示不限制深度
  8. "max_features": [3, 5, 12], # 每棵决策树考虑的最大特征数
  9. "min_samples_split": [2, 5, 10], # 分裂内部节点所需的最小样本数
  10. "min_samples_leaf": [3, 5, 10], # 叶子节点所需的最小样本数
  11. "bootstrap": [False], # 是否使用自助法(bootstrap sampling)
  12. "n_estimators": [100, 300], # 随机森林中决策树的数量
  13. "criterion": ["gini"] # 衡量决策树质量的指标,基尼系数
  14. }
  15. # 创建一个使用网格搜索的随机森林模型
  16. rf_gs = GridSearchCV(rf, param_grid=rf_param_grid, cv=kfold, scoring="accuracy", n_jobs=10, verbose=1)
  17. # 使用优化后的参数对训练数据集进行拟合
  18. rf_gs.fit(X_train, y_train)

十折交叉验证,英文名叫做10-fold cross-validation,用来测试算法准确性。是常用的测试方法。将数据集分成十份,轮流将其中9份作为训练数据,1份作为测试数据,进行试验。每次试验都会得出相应的正确率(或差错率)

10折验证是一种常用的交叉验证方法,可以更全面地评估模型性能、减少过拟合风险、评估模型稳定性以及进行参数调优。这样可以提高对模型的信心,并提供更好的模型选择依据。

此处选择了准确率作为各个参数组合的评估指标,并且应用10折验证以提高准确率。程序开始运行之后,10个“后台工作者”开始分批同步对54种参数(3*3*3*2=54)组合中的每一组参数,用10折验证的方式对训练集进行训练(因为是10折验证,所以共需训练540次)并比较,试图找到最佳参数。

  1. from sklearn.metrics import (accuracy_score, confusion_matrix)
  2. print("最佳参数组合:", rf_gs.best_params_)# 输出最优超参
  3. y_hat_rfgs = rf_gs.predict(X_test) # 用随机森林算法的最佳参数进行预测
  4. print("参数优化后随机森林预测准确率:", accuracy_score(y_test.T, y_hat_rfgs))

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/463733
推荐阅读
  

闽ICP备14008679号