实战:

def print_best_score(gsearch,param_test):# 输出best scoreprint("Best score: %0.3f" % gsearch.best_score_)print("Best parameters set:")# 输出最佳的分类器到底使用了怎样的参数best_parameters = gsearch.best_estimator_.get_params()for param_name in sorted(param_test.keys()):print("\t%s: %r" % (param_name, best_parameters[param_name]))params = {'depth': [4, 6, 10],'learning_rate' : [0.05, 0.1, 0.15],
#          'l2_leaf_reg': [1,4,9]
#          'iterations': [1200],
#           'early_stopping_rounds':[1000],
#           'task_type':['GPU'],
#           'loss_function':['MultiClass'],}
# cb = cbt.CatBoostClassifier()
estimator =cbt.CatBoostClassifier(iterations=2000,verbose=400,early_stopping_rounds=200,task_type='GPU',loss_function='MultiClass')cbt_model = GridSearchCV(estimator, param_grid = params, scoring="accuracy", cv = 3)# cbt_model = cbt.CatBoostClassifier(iterations=1200,learning_rate=0.05,verbose=300,
# early_stopping_rounds=1000,task_type='GPU',
# loss_function='MultiClass')cbt_model.fit(train_x,train_y,eval_set=(train_x,train_y))
# cbt_model.grid_scores_, gsearch.best_params_, gsearch.best_score_
print_best_score(cbt_model,params)
oof = cbt_model.predict_proba(test_x)

上述涉及到的知识:
gridSearchCV(网格搜索)的参数、方法
class sklearn.model_selection.GridSearchCV(estimator, param_grid, scoring=None, fit_params=None, n_jobs=1, iid=True, refit=True, cv=None, verbose=0, pre_dispatch=‘2*n_jobs’, error_score=’raise’, return_train_score=’warn’)
(1) estimator
选择使用的分类器,并且传入除需要确定最佳的参数之外的其他参数。每一个分类器都需要一个scoring参数,或者score方法:estimator=RandomForestClassifier(min_samples_split=100,min_samples_leaf=20,max_depth=8,max_features=‘sqrt’,random_state=10),
(2)param_grid
需要最优化的参数的取值,值为字典或者列表,例如:param_grid =param_test1,param_test1 = {‘n_estimators’:range(10,71,10)}。
(3)scoring=None
模型评价标准,默认None,这时需要使用score函数;或者如scoring=‘roc_auc’,根据所选模型不同,评价准则不同。字符串(函数名),或是可调用对象,需要其函数签名形如:scorer(estimator, X, y);如果是None,则使用estimator的误差估计函数
CatBoostClassifier/CatBoostRegressor
通用参数
learning_rate(eta)=automatically
depth(max_depth)=6: 树的深度
l2_leaf_reg(reg_lambda)=3 L2正则化系数
n_estimators(num_boost_round)(num_trees=1000)=1000: 解决ml问题的树的最大数量
one_hot_max_size=2: 对于某些变量进行one-hot编码
loss_function=‘Logloss’:
CatBoost具有两大优势,其一,它在训练过程中处理类别型特征,而不是在特征预处理阶段处理类别型特征;其二,选择树结构时,计算叶子节点的算法可以避免过拟合。

注意
  在对 CatBoost 调参时,很难对分类特征赋予指标。因此,同时给出了不传递分类特征时的调参结果,并评估了两个模型:一个包含分类特征,另一个不包含。我单独调整了独热最大量,因为它并不会影响其他参数。
  如果未在cat_features参数中传递任何内容,CatBoost会将所有列视为数值变量。注意,如果某一列数据中包含字符串值,CatBoost 算法就会抛出错误。另外,带有默认值的 int 型变量也会默认被当成数值数据处理。在 CatBoost 中,必须对变量进行声明,才可以让算法将其作为分类变量处理。

cat_features_index = [2,3,4,5,6,7]
# With Categorical features
clf = cbt.CatBoostClassifier(iterations=2000,learning_rate=0.05,verbose=300,early_stopping_rounds=1000,task_type='GPU',
loss_function='MultiClass',depth=4)
clf.fit(train_x,train_y, cat_features= cat_features_index)

参考文献:
https://www.kaggle.com/manrunning/catboost-for-titanic-top-7
https://blog.csdn.net/weixin_41988628/article/details/83098130
https://blog.csdn.net/linxid/article/details/80723811
http://www.atyun.com/4650.html
https://www.cnblogs.com/nxf-rabbit75/p/10923549.html

使用GridSearchCV对CatBoostClassifier分类器调参相关推荐

  1. python网格搜索核函数_机器学习笔记——模型调参利器 GridSearchCV(网格搜索)参数的说明...

    算法 数据结构 机器学习笔记--模型调参利器 GridSearchCV(网格搜索)参数的说明 GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数.但是这个 ...

  2. Lesson 6.5Lesson 6.6.1Lesson 6.6.2 机器学习调参基础理论与网格搜索多分类评估指标的macro与weighted过程GridSearchCV的进阶使用方法

    Lesson 6.5 机器学习调参基础理论与网格搜索 在上一小节执行完手动调参之后,接下来我们重点讨论关于机器学习调参的理论基础,并且介绍sklearn中调参的核心工具--GridSearchCV. ...

  3. GridSearchCV和RandomizedSearchCV调参

    1 GridSearchCV实际上可以看做是for循环输入一组参数后再比较哪种情况下最优. 使用GirdSearchCV模板 # Use scikit-learn to grid search the ...

  4. Python-sklearn包中自动调参方法-网格搜索GridSearchCV

    sklearn包中自动调参方法-网格搜索GridSearchCV 一.GridSearchCV主要作用及函数参数 GridSearchCV:作用是在指定的范围内可以自动调参,只需将参数输入即可得到最优 ...

  5. 暴力调参——GridSearchCV、RandomizedSearchCV、贝叶斯优化

    https://blog.csdn.net/juezhanangle/article/details/80051256 http://www.360doc.com/content/18/0707/15 ...

  6. 随机森林调参_机器学习-模型调参利器 gridSearchCV(网格搜索)

    在机器学习模型中,需要人工选择的参数称为超参数.比如随机森林中决策树的个数,人工神经网络模型中隐藏层层数和每层的节点个数,正则项中常数大小等等,他们都需要事先指定.超参数选择不恰当,就会出现欠拟合或者 ...

  7. ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参【2种方法,ShuffleSplit+GridSearchCV、TimeSeriesSplitGSCV】、模型评估)

    ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参[2种方法,ShuffleSplit+GridSearchCV.TimeSeriesSplitGSCV].模型评估) 目录 ...

  8. 【参数调优】网格搜索GridSearchCV输出调参各个结果cv_results_

    cv_results_本身就是一个字典形式的输出,里面含有很多结果 param_test1 = {'n_estimators': range(10, 101, 10)} gssearch = Grid ...

  9. 万字长文总结机器学习的模型评估与调参 | 附代码下载

    作者 | Sebastian Raschka 翻译&整理 | Sam 来源 | SAMshare 目录 一.认识管道流 1.1 数据导入 1.2 使用管道创建工作流 二.K折交叉验证 2.1 ...

最新文章

  1. 小猿圈之学习java web需要有什么基础?
  2. LINUX--特殊权限SUID,SGID,Sticky
  3. LeetCode 1391. 检查网格中是否存在有效路径(BFS)
  4. 学计算机专业能上国家电网吗,高考结束后,选择什么专业能进入国家电网?这些专业考生应该知道...
  5. EMNLP 2018 | 为什么使用自注意力机制?
  6. PowerPhotos:Mac照片库管理软件
  7. 大数据分析-实验八 鸢尾花数据集分类
  8. Android UI美化——颜色
  9. LVDS学习笔记之lvds_transceiver设计及仿真
  10. Hardhat创建、编译、测试智能合约
  11. (附源码)springBoot高校宿舍交电费系统 毕业设计 031552
  12. 分享一个:批量下载个性化桌面壁纸和各种唯美图片的方法
  13. 网课Php代码,php - PHP网络课程 - php中文网博客
  14. clickhouse 常用函数 算数函数 时间函数 日期函数 字符串函数 比较函数 数据类型函数 逻辑函数 类型转换函数 替换函数 数组函数 随机函数 编码函数 UUID URL IP 函数
  15. Mac上的经典播放器——Elmedia Player
  16. 十倍效能提升——Web 基础研发体系的建立
  17. mingw 构建 mysql-connector-c-6.1.9记录
  18. 我的2017年读书计划
  19. ISLR统计学习导论之R语言应用(六):R语言实现变量选择和岭回归
  20. vue 实现 excel 的导出功能

热门文章

  1. 企业知识管理包括哪些内容?
  2. easypr arm linux,arm linux下交叉編譯EasyPR中文車牌識別系統開發(一)
  3. Docker+Ovs构建SDN网络
  4. Linux下软件逆向工程的介绍(一)
  5. 达美乐中国IPO遇挫:延迟全球发售 原计划上周上市敲钟
  6. KPPW仿一品威客威客模板
  7. 离线下载Android SDK(100%成功)
  8. Window提高效率的软件
  9. 电脑硬盘中文件丢失怎样才能找回?硬盘数据丢失能恢复吗
  10. 引热议!多所高校明文规定:不再给部分全日制研究生安排宿舍