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
R︱Yandex的梯度提升CatBoost 算法(官方述:超越XGBoost/lightGBM/h2o)的更多相关文章
- GBDT梯度提升树算法及官方案例
梯度提升树是一种决策树的集成算法.它通过反复迭代训练决策树来最小化损失函数.决策树类似,梯度提升树具有可处理类别特征.易扩展到多分类问题.不需特征缩放等性质.Spark.ml通过使用现有decisio ...
- 梯度提升决策树(GBDT)与XGBoost、LightGBM
今天是周末,之前给自己定了一个小目标:每周都要写一篇博客,不管是关于什么内容的都行,关键在于总结和思考,今天我选的主题是梯度提升树的一些方法,主要从这些方法的原理以及实现过程入手讲解这个问题. 本文按 ...
- CatBoost使用GPU实现决策树的快速梯度提升CatBoost Enables Fast Gradient Boosting on Decision Trees Using GPUs
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...
- 基于R语言的梯度推进算法介绍
通常来说,我们可以从两个方面来提高一个预测模型的准确性:完善特征工程(feature engineering)或是直接使用Boosting算法.通过大量数据科学竞赛的试炼,我们可以发现人们更钟爱于Bo ...
- 梯度提升树GBDT算法
转自https://zhuanlan.zhihu.com/p/29802325 本文对Boosting家族中一个重要的算法梯度提升树(Gradient Boosting Decison Tree, 简 ...
- scikit-learn的梯度提升算法(Gradient Boosting)使用
前言:本文的目的是记录sklearn包中GBRT的使用,主要是官网各参数的意义:对于理论部分和实际的使用希望在只是给出出处,希望之后有时间能补充完整 摘要: 1.示例 2.模型主要参数 3.模型主要属 ...
- CatBoost算法和调参
欢迎关注博主主页,学习python视频资源 sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?co ...
- R语言︱XGBoost极端梯度上升以及forecastxgb(预测)+xgboost(回归)双案例解读
XGBoost不仅仅可以用来做分类还可以做时间序列方面的预测,而且已经有人做的很好,可以见最后的案例. 应用一:XGBoost用来做预测 ------------------------------- ...
- 04-07 scikit-learn库之梯度提升树
目录 scikit-learn库之梯度提升树 一.GradietBoostingClassifier 1.1 使用场景 1.2 参数 1.3 属性 1.4 方法 二.GradietBoostingCl ...
随机推荐
- python error: curl: (1) Protocol "'https" not supported or disabled in libcurl
python 调用curl访问一个网页时,出现error: curl: (1) Protocol "'https" not supported or disabled in lib ...
- 4.9版本的linux内核中实时时钟芯片pt7c4338的驱动源码在哪里
答:drivers/rtc/rtc-ds1307.c,内核配置项为CONFIG_RTC_DRV_DS1307 Location: -> Device Drivers -> Real Tim ...
- 在centos7上安装部署hadoop2.7.3和spark2.0.0
一.安装装备 下载安装包: vmware workstations pro 12 三台centos7.1 mini 虚拟机 网络配置NAT网络如下: 二.创建hadoop用户和hadoop用户组 1. ...
- Ubuntu安装zabbix
1.安装依赖包 安装mysql 安装nginx apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql p ...
- Android通过soap2访问webservice遇到HTTP request failed, HTTP status: 302的问题
笔者用C#在服务器端写了一个Webservice,然后再Android客户端通过soap2调用webservice的函数,遇到了HTTP request failed, HTTP status: 30 ...
- 网页上播放音频、视频Mp3,Mp4
昨天在处理网页上播放音频mp3,视频mp4上用了一天的时间来比较各种方案,最终还是选择了HTML5的 标签,谷歌浏览器.IE浏览器对标签的支持都很好,火狐上需要安装quicktime插件,效果比较差. ...
- HighCharts常用设置
1. X轴文字斜着放,在xAxis里设置 xAxis: { labels: { rotation: -90 //竖直放 rotation: -45 //45度倾斜 } } 2. 柱形图柱形的宽度和边框 ...
- customs event
// First create the event var myEvent = new CustomEvent("userLogin", { detail: { username: ...
- Kotlin Android Studio 环境搭建
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源. Kotlin 可以编译成Java字节码,也可以编 ...
- Android Kotlin —— 语言结合
2017 Google I/O 大会开始就宣布,将Kotlin语言作为安卓开发的一级编程语言. Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发. Ko ...