俄罗斯搜索巨头 Yandex 昨日宣布开源 CatBoost ,这是一种支持类别特征,基于梯度提升决策树的机器学习方法。
CatBoost 是由 Yandex 的研究人员和工程师开发的,是 MatrixNet 算法的继承者,在公司内部广泛使用,用于排列任务、预测和提出建议。Yandex 称其是通用的,可应用于广泛的领域和各种各样的问题。


笔者相关文章:

R+工业级GBDT︱微软开源 的LightGBM(R包已经开放)
R语言︱XGBoost极端梯度上升以及forecastxgb(预测)+xgboost(回归)双案例解读
R语言︱H2o深度学习的一些R语言实践——H2o包


CatBoost 的主要优势:

  • 与其他库相比,质量上乘
  • 支持数字化和分类功能
  • 带有数据可视化工具

官网:https://tech.yandex.com/CatBoost/
github:https://github.com/catboost/catboost


有R/python两个版本,官方自述超越现有的最好的三个ML库:XGBoost/lightGBM/h2o

衡量标准为: Logloss 越小越好:

默认参数解析([github](https://github.com/catboost/benchmarks/blob/master/comparison_description.pdf)):



安装

在window笔者遇到了:

* installing *source* package 'catboost' ...
** libsrunning 'src/Makefile.win' ...
/cygdrive/c/Users/mzheng50/Desktop/R-package/src/../../../ya.bat make -r -o ../../..
make: /cygdrive/c/Users/mzheng50/Desktop/R-package/src/../../../ya.bat: Command not found
make: *** [all] Error 127
警告: 运行命令'make --no-print-directory -f "Makefile.win"'的状态是2
ERROR: compilation failed for package 'catboost'
* removing 'C:/Users/mzheng50/Documents/R/win-library/3.1/catboost'
Error: Command failed (1)

在Linux用下面code可以一气呵成:

devtools::install_github('catboost/catboost', subdir = 'catboost/R-package')

一个官方案例:

library(caret)
library(titanic)
library(catboost)set.seed(12345)data <- as.data.frame(as.matrix(titanic_train), stringsAsFactors = TRUE)drop_columns = c("PassengerId", "Survived", "Name", "Ticket", "Cabin")
x <- data[,!(names(data) %in% drop_columns)]
y <- data[,c("Survived")]fit_control <- trainControl(method = "cv",number = 4,classProbs = TRUE)grid <- expand.grid(depth = c(4, 6, 8),learning_rate = 0.1,iterations = 100,l2_leaf_reg = 1e-3,rsm = 0.95,border_count = 64)
report <- train(x, as.factor(make.names(y)),method = catboost.caret,verbose = TRUE, preProc = NULL,tuneGrid = grid, trControl = fit_control)print(report)
--------------------------
> Catboost
>
> 891 samples   7 predictors   2 classes: 'X0', 'X1'
>
> No pre-processing Resampling: Cross-Validated (4 fold) Summary of
> sample sizes: 669, 668, 668, 668 Resampling results across tuning
> parameters:
>
>   depth  Accuracy   Kappa   4      0.8091544  0.5861049   6
> 0.8035642  0.5728401   8      0.7026674  0.2672683
>
> Tuning parameter 'learning_rate' was held constant at a value of 0.1
>
> Tuning parameter 'rsm' was held constant at a value of 0.95 Tuning
> parameter 'border_count' was held constant at a value of 64 Accuracy
> was used to select the optimal model using  the largest value. The
> final values used for the model were depth = 4, learning_rate =
>  0.1, iterations = 100, l2_leaf_reg = 0.001, rsm = 0.95 and border_count = 64.
importance <- varImp(report, scale = FALSE)
print(importance)
--------------------------
custom variable importance
         Overall
Fare      25.918
Parch     19.419
Sex       17.999
Pclass    17.410
Age       10.372
Embarked   5.879
SibSp      3.004

公众号“素质云笔记”定期更新博客内容:

R︱Yandex的梯度提升CatBoost 算法(官方述:超越XGBoost/lightGBM/h2o)相关推荐

  1. 梯度提升决策树(GBDT)与XGBoost、LightGBM

    20211224 [机器学习算法总结]XGBoost_yyy430的博客-CSDN博客_xgboost xgboost参数 默认:auto.XGBoost中使用的树构造算法.可选项:auto,exac ...

  2. 梯度提升决策树GBDT及其优秀改进XGBoost的浅析

    梯度提升决策树 英文是Gradient Boosting Decision Tree (GBDT).是一种迭代的决策树算法,由多棵决策树组成,将所有树的结论累加起来做最终答案.值得注意的是,GBDT中 ...

  3. 做时间序列预测有必要用深度学习吗?事实证明,梯度提升回归树媲美甚至超越多个DNN模型...

    来源:机器之心 本文约2600字,建议阅读9分钟 在时间序列预测任务上,你不妨试试简单的机器学习方法. 在深度学习方法应用广泛的今天,所有领域是不是非它不可呢?其实未必,在时间序列预测任务上,简单的机 ...

  4. 做时间序列预测有必要用深度学习吗?梯度提升回归树媲美甚至超越多个DNN模型...

    ©作者 | 杜伟.陈萍 来源 | 机器之心 在深度学习方法应用广泛的今天,所有领域是不是非它不可呢?其实未必,在时间序列预测任务上,简单的机器学习方法能够媲美甚至超越很多 DNN 模型. 过去几年,时 ...

  5. 算法理解|从头开始理解梯度提升算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:Prince Grover 编译:ronghuaiyang ...

  6. Python实现直方图梯度提升分类模型(HistGradientBoostingClassifier算法)并基于网格搜索进行优化同时绘制PDP依赖图项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 基于直方图的梯度提升分类树.此估算器对缺失值 (NaN) 具有原 ...

  7. 俄罗斯最大搜索引擎Yandex开源了一款梯度提升机器学习库CatBoost

    现在,人工智能正在为越来越多的计算功能提供支持,今天,俄罗斯搜索巨头Yandex宣布,将向开源社区提交一款梯度提升机器学习库CatBoost.它能够在数据稀疏的情况下"教"机器学习 ...

  8. python 梯度提升树_机器学习:梯度提升算法|python与r语言代码实现

    梯度提升算法 10.1 GBM GBM(梯度提升机)是一种在处理大量数据以进行高预测的预测时使用的Boosting算法.Boosting实际上是一个学习算法的集合,它结合了几个基本估计量的预测,以便比 ...

  9. R语言使用caret包构建gbdt模型(随机梯度提升树、Stochastic Gradient Boosting )构建回归模型、通过method参数指定算法名称

    R语言使用caret包构建gbdt模型(随机梯度提升树.Stochastic Gradient Boosting )构建回归模型.通过method参数指定算法名称 目录

最新文章

  1. js手机键盘遮挡_完美解决手机网页中输入框被输入法遮挡的问题
  2. 把集成测试和单元测试写一起是一种什么体验?
  3. # vmware异常关机后,虚拟系统无法启动的解决办法
  4. WebRTC:应用中最大难点在于根据业务需求的适当折中
  5. python from sys import argv_笨方法学python之import sys与from sys import argv的区别
  6. 关闭和启动Oracle的几种方法总结
  7. 可变悬挂调节软硬_国六最亲民的豪车,丐版2.0T纯进口,全系可变悬架+8气囊,才23万...
  8. LeetCode刷题(29)
  9. titanium.cookbook-02-01-使用HTTPClient对象从远程XML读取数据
  10. javaWeb企业分布式、互联网、云开发平台-Jeesz
  11. django multidb --- router
  12. Win10 64bit安装VC6+VC6助手
  13. Android Camera2 Opengles2.0 实时滤镜(冷暖色/放大镜/模糊/美颜)
  14. 怎么压缩gif图大小,gif压缩到微信表情
  15. 罗技K375s重新配置和连接
  16. 青龙+WxPusher实现资产推送
  17. foreign key() references 字段名(字段名)详细用法
  18. 综合架构-高可用服务
  19. matlab中的sjy定义,sjy(sjy是什么缩写)
  20. 【c++并发编程】pthread_create的使用

热门文章

  1. AutoFac IoC DI 依赖注入
  2. hdoj--2094--产生冠军(集合函数)
  3. svn的使用--解决commit冲突问题
  4. 开发extjs常用的插件
  5. solr6.6.2之拼音联想
  6. 成功恢复新网LINUX REISERFS 6块盘 RAID5邮件服务器
  7. JVM调优之:垃圾收集器
  8. 部署git服务器(Windows Server 2008)
  9. Q131:PBRT-V3,对比SurfaceInteration和MediumInteraction(笔记)
  10. 《An Introduction to Ray Tracing》——2.3 Ray/Polygon Intersection And Mapping