catboost回归

catboost有一下三个的优点:

  • 它自动采用特殊的方式处理类别型特征(categorical features)。首先对categorical features做一些统计,计算某个类别特征(category)出现的频率,之后加上超参数,生成新的数值型特征(numerical features)。这也是我在这里介绍这个算法最大的motivtion,有了catboost,再也不用手动处理类别型特征了。
  • catboost还使用了组合类别特征,可以利用到特征之间的联系,这极大的丰富了特征维度
  • catboost的基模型采用的是对称树,同时计算leaf-value方式和传统的boosting算法也不一样,传统的boosting算法计算的是平均数,而catboost在这方面做了优化采用了其他的算法,这些改进都能防止模型过拟合
def catboost_regressor(pool_train,pool_valid):"""catboost回归法"""params = {'iterations': 300,'learning_rate': 1,'depth': 10,'loss_function': 'RMSE'}clf = CatBoostRegressor(**params)# 直接训练clf.fit(pool_train,eval_set=pool_valid,plot=True)print("model.get_all_params():")print(clf.get_all_params())return clf# 其中训练集、测试集计算方法如下:pool_train = cb.Pool(data=Xtrain, label=Ytrain, cat_features=cate_cols)pool_valid = cb.Pool(data=Xvalid, label=Yvalid, cat_features=cate_cols)
CatBoost中的常用参数:
  • 根误差和用于分类的对数损失。
  • eval_metric —用于检测过度拟合的度量。
  • iterations -待建的树的最大数量,默认为1000。别名是 num_boost_roundn_estimatorsnum_trees
  • learning_rate 别名 eta -学习速率,确定模型将学习多快或多慢。默认值通常为0.03。
  • random_seed 别名 random_state —用于训练的随机种子。
  • l2_leaf_reg 别名 reg_lambda —成本函数的L2正则化项的系数。默认值为3.0。
  • bootstrap_type —确定对象权重的采样方法,例如贝叶斯,贝努利,MVS和泊松。
  • depth —树的深度。
  • grow_policy —确定如何应用贪婪搜索算法。它可以是 SymmetricTreeDepthwiseLossguideSymmetricTree 是默认值。在中 SymmetricTree,逐级构建树,直到达到深度为止。在每个步骤中,以相同条件分割前一棵树的叶子。当 Depthwise 被选择,一棵树是内置一步步骤,直到指定的深度实现。在每个步骤中,将最后一棵树级别的所有非终端叶子分开。使用导致最佳损失改善的条件来分裂叶子。在中 Lossguide,逐叶构建树,直到达到指定的叶数。在每个步骤中,将损耗改善最佳的非终端叶子进行拆分
  • min_data_in_leaf 别名 min_child_samples —这是一片叶子中训练样本的最小数量。此参数仅与 LossguideDepthwise 增长策略一起使用。
  • max_leaves alias num_leaves —此参数仅与Lossguide 策略一起使用, 并确定树中的叶子数。
  • ignored_features —表示在培训过程中应忽略的功能。
  • nan_mode —处理缺失值的方法。选项包括 ForbiddenMin,和 Max。默认值为 Min。当 Forbidden 使用时,缺失值导致错误的存在。使用 Min,缺少的值将作为该功能的最小值。在中 Max,缺失值被视为特征的最大值。
  • leaf_estimation_method —用于计算叶子中值的方法。在分类中,使用10 Newton 次迭代。使用分位数或MAE损失的回归问题使用一次 Exact 迭代。多分类使用一次 Netwon 迭代。
  • leaf_estimation_backtracking —在梯度下降过程中使用的回溯类型。默认值为 AnyImprovementAnyImprovement 减小下降步长,直至损失函数值小于上次迭代的值。 Armijo 减小下降步长,直到满足 Armijo条件 。
  • boosting_type —加强计划。它可以plain 用于经典的梯度增强方案,也可以 用于或 ordered,它在较小的数据集上可以提供更好的质量。
  • score_function — 分数类型, 用于在树构建过程中选择下一个拆分。 Cosine 是默认选项。其他可用的选项是 L2NewtonL2NewtonCosine
  • early_stopping_rounds —当时 True,将过拟合检测器类型设置为, Iter 并在达到最佳度量时停止训练。
  • classes_count —多重分类问题的类别数。
  • task_type —使用的是CPU还是GPU。CPU是默认设置。
  • devices —用于训练的GPU设备的ID。
  • cat_features —具有分类列的数组。
  • text_features -用于在分类问题中声明文本列。

catboost算法及参数说明相关推荐

  1. ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式)

    ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式) 目录 基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两 ...

  2. ML之CatboostC:基于titanic泰坦尼克数据集利用catboost算法实现二分类

    ML之CatboostC:基于titanic泰坦尼克数据集利用catboost算法实现二分类 目录 基于titanic泰坦尼克数据集利用catboost算法实现二分类 设计思路 输出结果 核心代码 相 ...

  3. ML之CatBoost:金融风控之通过数据预处理(中位数填充/校验同分布/文本型日期拆解/平均数编码-标签编码)利用CatBoost算法+模型可解释性(Shap/LIME)预测用户的车险是否为欺诈行为

    ML之CatBoost:金融风控之通过数据预处理(中位数填充/校验同分布/文本型日期拆解/平均数编码-标签编码)利用CatBoost算法+模型可解释性(Shap/LIME)预测用户的车险是否为欺诈行为 ...

  4. 深度学习核心技术精讲100篇(九)-Catboost算法原理解析及代码实现

    前言 今天博主来介绍一个超级简单并且又极其实用的boosting算法包Catboost,据开发者所说这一boosting算法是超越Lightgbm和XGBoost的又一个神器. catboost 简介 ...

  5. 【机器学习基础】XGBoost、LightGBM与CatBoost算法对比与调参

    机器学习 Author:louwill Machine Learning Lab 虽然现在深度学习大行其道,但以XGBoost.LightGBM和CatBoost为代表的Boosting算法仍有其广阔 ...

  6. XGBoost、LightGBM与CatBoost算法对比与调参

    虽然现在深度学习大行其道,但以XGBoost.LightGBM和CatBoost为代表的Boosting算法仍有其广阔的用武之地.抛开深度学习适用的图像.文本.语音和视频等非结构化的数据应用,Boos ...

  7. R︱Yandex的梯度提升CatBoost 算法(官方述:超越XGBoost/lightGBM/h2o)

    俄罗斯搜索巨头 Yandex 昨日宣布开源 CatBoost ,这是一种支持类别特征,基于梯度提升决策树的机器学习方法. CatBoost 是由 Yandex 的研究人员和工程师开发的,是 Matri ...

  8. 树模型:决策树、随机森林(RF)、AdaBoost、GBDT、XGBoost、LightGBM和CatBoost算法区别及联系

    一.算法提出时间 1966年,决策树算法起源于E.B.Hunt等人提出. 1979年,Quinlan(罗斯.昆兰)提出了ID3算法,掀起了决策树研究的高潮,让决策树成为机器学习主流算法. 1993年, ...

  9. 用通俗易懂的方式讲解:CatBoost 算法原理及案例

    文章目录 知识汇总 解惑答疑 1.梯度提升概述 2.什么是 CatBoost 3.CatBoost 的主要特点 01 对称树 FloatFeature OneHotFeature OnlineCtr ...

最新文章

  1. 多快好省的宏基因组研究技巧 — 资深专家分享
  2. mysql 互为主备 宕机 数据丢失_Devops部署-mysql主备多从搭建
  3. NB-IoT在智能农业中的示范应用
  4. 如何用python制作动画的软件_大牛Python程序员制作3D动态可视化教程
  5. 高并发 数据库操作比如插入,修改等解决办法
  6. MySQL SQL Error: 1064, SQLState: 42000 错误
  7. mysql查出倒序第一条数据_[数据库]mysql 记录根据日期字段倒序输出
  8. python入门第七章好友管理系统
  9. 大学英语综合教程三 Unit 3 课文内容英译中 中英翻译
  10. 23hh小说网——爬虫0.1python
  11. 平板电脑(台电x80HD)安装Ubuntu18.04教程- Z3735系列CPU通用
  12. 如何限定apt-get使用IPv4或IPv6协议下载
  13. 【音视频】WIN8|WIN10的桌面采集技术-DXGI(一)
  14. 阿里巴巴-飞猪 电话面试
  15. 我喜欢星期五因为我们那天有计算机课英文,高一英语作文范文4篇
  16. Qt显示调用dll库失败
  17. 零极限:创造健康、平静与财富的四句话
  18. 一个简单的ADFR的re-docking教程
  19. 我所知道的张小龙 by和菜头
  20. CS 425 – Database Organization - project 1:HomeImprovement_shop_project

热门文章

  1. 软件测试面试关于压力测试,软件测试面试题目
  2. 美团无人车收到首张罚单 低速无人车到底该怎么管?
  3. QListView IconMode设置图标放大,整齐排列的处理方式
  4. 课程设计题目:图片服务器项目的全面测试
  5. springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
  6. 面向对象编程的23种设计模式
  7. mysql longblob,Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)
  8. h5域名及微信快借贷款金融类APP下载链接域名在微信内显示已停止访问或无法打开的原因及解决方案
  9. 科技创业新锐企业给予奖杯及一次性20万元资金扶持
  10. 动手学数据分析Task2第一节数据清洗及特征处理