专栏首页素质云笔记R︱Yandex的梯度提升CatBoost 算法(官方述:超越XGBoost/lightGBM/h2o)

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

俄罗斯搜索巨头 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' ...
** libs
  running '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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 练习题︱豆瓣图书的推荐与搜索、简易版知识引擎构建(neo4j)

    本项目主要贡献源来自豆瓣爬虫(数据源)lanbing510/DouBanSpider、知识图谱引擎Agriculture_KnowledgeGraph、appl...

    素质
  • DBSCAN聚类︱scikit-learn中一种基于密度的聚类方式

    一、DBSCAN聚类概述 基于密度的方法的特点是不依赖于距离,而是依赖于密度,从而克服基于距离的算法只能发现“球形”聚簇的缺点。 DBSCAN的核心思想是从...

    素质
  • R︱mlr包挑选最适机器学习模型+变量评估与选择(案例详解)

    版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! ...

    素质
  • R中字段抽取、字段合并、字段匹配

    1、字段抽取 字段抽取,是根据已知列数据的开始和结束位置,抽取出新的列 字段截取函数:substr(x,start,stop) tel <- '1892225...

    Erin
  • 同行评审以权谋私,让投稿人多引用自己文章,爱思唯尔将彻查此事

    爱思唯尔发现,某些同行评审正在滥用自己的权力,提高自己文章的引用率。他们会在投稿人的在审稿意见中加入一句提醒:“请参考XXX文献”,而这篇文献往往是审稿人自己的...

    量子位
  • 手把手教你训练一个神经网络,打爆21点!

    21点又名黑杰克(Blackjack),起源于法国,已流传到世界各地,有着悠久的历史。

    大数据文摘
  • 3-开发共享版APP(接入指南)-设备接入说明:使用隐藏配置

    https://www.cnblogs.com/yangfengwu/p/11273226.html

    杨奉武
  • 产品运营之我见

    在运营之初,需先明确运营的整体战略,可分为品牌、产品、生态。企业的不同阶段,对于各点也侧重不同。后续的运营工作,需按照不同侧重,有所针对性的安排。

    用户5548425
  • 「小程序JAVA实战」小程序页面的上拉下拉刷新(50)

    PS:上拉刷新不需要做任何的配置,下拉刷新需要开启配置,每次请求建议开启 wx.showNavigationBarLoading() 和 wx.hideNavi...

    IT故事会
  • Flink运行架构及编程模型

    翻译Flink官网关于flink运行架构及编程模型的内容,本文的图片来自flink官网。计划今年下半年将flink应用到生产环境,最近在进行flink的学习,会...

    Eights

扫码关注云+社区

领取腾讯云代金券