XGB-1:XGBoost安装及快速上手

2024-02-03 18:20
文章标签 安装 快速 xgboost xgb

本文主要是介绍XGB-1:XGBoost安装及快速上手,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

XGBoost是“Extreme Gradient Boosting”的缩写,是一种高效的机器学习算法,用于分类、回归和排序问题。它由陈天奇(Tianqi Chen)在2014年首次提出,并迅速在数据科学竞赛和工业界获得广泛应用。XGBoost基于梯度提升框架,但通过引入一系列优化来提升性能和效率。

XGBoost的主要特点:

  1. 性能高效:XGBoost通过并行处理和核外计算来优化计算速度,同时保持高预测精度。
  2. 灵活性:支持自定义目标函数和评估准则,适用于多种类型的问题。
  3. 鲁棒性:包括处理缺失值的功能,能够处理不完整的数据。
  4. 正则化:通过L1和L2正则化避免过拟合,提高模型的泛化能力。
  5. 剪枝:在树构建过程中进行预剪枝和后剪枝,减少过拟合的风险。
  6. 稀疏意识:在处理稀疏数据时更加高效,减少计算量。

应用场景:

  • 分类问题:如邮件分类(垃圾邮件/非垃圾邮件)、图像识别等。
  • 回归问题:如房价预测、股票价格预测等。
  • 排序问题:如搜索引擎结果排序、推荐系统等。

如何使用XGBoost:

  1. 安装:通过Python的pip安装xgboost库。
  2. 数据准备:准备训练数据和标签。
  3. 模型训练:使用xgboost库中的XGBClassifierXGBRegressor进行模型训练。
  4. 模型评估:使用交叉验证等方法评估模型性能。
  5. 参数调优:通过调整学习率、树的数量和深度等参数来优化模型。

XGBoost因其强大的功能和优异的性能,在众多机器学习算法中脱颖而出,成为解决复杂数据问题的有力工具。

安装指南

XGBoost提供了一些语言绑定的二进制软件包,这些二进制软件包支持在具有NVIDIA GPU的机器上使用GPU算法(设备为cuda:0)。请注意,仅在Linux平台上支持使用多个GPU进行训练。

Python

已经上传了预先构建的二进制软件包到PyPI(Python Package Index)以供每个发布版本使用。支持的平台包括Linux(x86_64、aarch64)、Windows(x86_64)和MacOS(x86_64、Apple Silicon)。

# 需要 Pip 21.3+
pip install xgboost

如果遇到权限错误,可能需要使用 --user 标志运行该命令,或者在虚拟环境中运行。

注意

Windows用户需要安装Visual C++ Redistributable

XGBoost需要Visual C++ Redistributable中的DLL文件才能正常运行,请确保安装它。例外情况:如果您已安装了Visual Studio,则已经可以访问必要的库,因此无需安装Visual C++ Redistributable。

每个平台的二进制软件包的功能:

xRKIC.png

Conda

可以使用Conda包管理器安装XGBoost:

conda install -c conda-forge py-xgboost

Conda应该能够检测到机器上是否存在GPU,并安装XGBoost的正确变体。如果遇到问题,请尝试明确指定变体:

# 仅CPU
conda install -c conda-forge py-xgboost-cpu
# 使用NVIDIA GPU
conda install -c conda-forge py-xgboost-gpu

请访问Miniconda网站获取Conda。

注意

在Windows上不提供py-xgboost-gpu

py-xgboost-gpu目前在Windows上不可用。如果使用Windows,请使用pip安装具有GPU支持的XGBoost

R

从CRAN:

install.packages("xgboost")

注意

在Mac OSX上使用所有CPU核心(线程)

如果使用的是Mac OSX,应该首先安装OpenMP库(libomp),方法是运行

brew install libomp

然后运行 install.packages("xgboost")。没有安装OpenMP,XGBoost将仅使用单个CPU核心,导致训练速度不理想。

还提供了带有GPU支持的实验性预构建二进制文件。使用此二进制文件,将能够在不从源代码构建XGBoost的情况下使用GPU算法。从Releases页面下载二进制软件包。文件名将采用xgboost_r_gpu_[os]_[version].tar.gz 的形式,其中[os]可以是linuxwin64,然后通过运行以下命令安装XGBoost:

# 安装依赖项
R -q -e "install.packages(c('data.table', 'jsonlite'))"
# 安装XGBoost
R CMD INSTALL ./xgboost_r_gpu_linux.tar.gz
JVM
  • XGBoost4j/XGBoost4j-Spark

Maven

<properties>...<!-- 在包名中指定 Scala 版本 --><scala.binary.version>2.12</scala.binary.version>
</properties><dependencies>...<dependency><groupId>ml.dmlc</groupId><artifactId>xgboost4j_${scala.binary.version}</artifactId><version>latest_version_num</version></dependency><dependency><groupId>ml.dmlc</groupId><artifactId>xgboost4j-spark_${scala.binary.version}</artifactId><version>latest_version_num</version></dependency>
</dependencies>

sbt

libraryDependencies ++= Seq("ml.dmlc" %% "xgboost4j" % "latest_version_num","ml.dmlc" %% "xgboost4j-spark" % "latest_version_num"
)
  • XGBoost4j-GPU/XGBoost4j-Spark-GPU

Maven

<properties>...<!-- 在包名中指定 Scala 版本 --><scala.binary.version>2.12</scala.binary.version>
</properties><dependencies>...<dependency><groupId>ml.dmlc</groupId><artifactId>xgboost4j-gpu_${scala.binary.version}</artifactId><version>latest_version_num</version></dependency><dependency><groupId>ml.dmlc</groupId><artifactId>xgboost4j-spark-gpu_${scala.binary.version}</artifactId><version>latest_version_num</version></dependency>
</dependencies>

sbt

libraryDependencies ++= Seq("ml.dmlc" %% "xgboost4j-gpu" % "latest_version_num","ml.dmlc" %% "xgboost4j-spark-gpu" % "latest_version_num"
)

这将从 Maven 中央仓库获取最新的稳定版本。

要启用 GPU 算法(device='cuda'),改用 xgboost4j-gpu_2.12xgboost4j-spark-gpu_2.12 这两个构件(请注意 gpu 后缀)。

注意

不支持 Windows 的 JVM 包

目前,XGBoost4J-Spark 不支持 Windows 平台,因为 Windows 上的分布式训练算法无法正常运行


快速开始

这是一个快速入门教程,其中包含一些片段,让您可以快速尝试在二分类任务的演示数据集上使用 XGBoost。

Python
from xgboost import XGBClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_reportdata = load_iris()
X_train, X_test, y_train, y_test = train_test_split(data['data'], data['target'], test_size=.2)# create model instance
bst = XGBClassifier(n_estimators=2, max_depth=2, learning_rate=1, objective='binary:logistic')# fit model
bst.fit(X_train, y_train)# make predictions
preds = bst.predict(X_test)classification_report(preds, y_test)

xcPSs.png

R
# load data
data(agaricus.train, package='xgboost')
data(agaricus.test, package='xgboost')
train <- agaricus.train
test <- agaricus.test
# fit model
bst <- xgboost(data = train$data, label = train$label, max.depth = 2, eta = 1, nrounds = 2,nthread = 2, objective = "binary:logistic")
# predict
pred <- predict(bst, test$data)
Julia
using XGBoost
# read data
train_X, train_Y = readlibsvm("demo/data/agaricus.txt.train", (6513, 126))
test_X, test_Y = readlibsvm("demo/data/agaricus.txt.test", (1611, 126))
# fit model
num_round = 2
bst = xgboost(train_X, num_round, label=train_Y, eta=1, max_depth=2)
# predict
pred = predict(bst, test_X)
Scala
import ml.dmlc.xgboost4j.scala.DMatrix
import ml.dmlc.xgboost4j.scala.XGBoostobject XGBoostScalaExample {def main(args: Array[String]) {// read trainining data, available at xgboost/demo/dataval trainData =new DMatrix("/path/to/agaricus.txt.train")// define parametersval paramMap = List("eta" -> 0.1,"max_depth" -> 2,"objective" -> "binary:logistic").toMap// number of iterationsval round = 2// train the modelval model = XGBoost.train(trainData, paramMap, round)// run predictionval predTrain = model.predict(trainData)// save model to the file.model.saveModel("/local/path/to/model")}
}

参考

  • Awesome XGBoost
  • awesome-machine-learning
  • https://xgboost.readthedocs.io

这篇关于XGB-1:XGBoost安装及快速上手的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/674987

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP