xgboost实战--python&spark训练预测

本文介绍了xgboost的基本概念,包括其在数据科学和工业界的广泛应用。详细讲解了如何在Python环境中配置xgboost,包括使用Anaconda创建环境、安装xgboost以及演示训练和预测过程。接着,文章转向Spark环境,阐述了xgboost在Spark上的部署,包括数据格式要求、训练与预测的步骤,并提供了调参和注意事项的参考资料。
摘要由CSDN通过智能技术生成

xgboost介绍

xgboost是大规模并行boosted tree的工具,它是目前最快最好的开源boosted tree工具包,比常见的工具包快10倍以上。在数据科学方面,有大量kaggle选手选用它进行数据挖掘比赛,其中包括两个以上kaggle比赛的夺冠方案。在工业界规模方面,xgboost的分布式版本有广泛的可移植性,支持在YARN, MPI, Sungrid Engine等各个平台上面运行,并且保留了单机并行版本的各种优化,使得它可以很好地解决于工业界规模的问题。本文主要针对xgboost单机训练&预测以及spark训练与预测进行介绍&demo介绍,方便后面人借鉴使用。

xgboost-python环境&Demo

Anaconda 3安装

Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。Anaconda通过管理工具包、开发环境、Python版本,大大简化了你的工作流程。不仅可以方便地安装、更新、卸载工具包,而且安装时能自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目。在 Anaconda 官网中是这么宣传自己的:适用于企业级大数据分析的Python工具。其包含了720多个数据科学相关的开源包,在数据可视化、机器学习、深度学习等多方面都有涉及。不仅可以做数据分析,甚至可以用在大数据和人工智能领域。

创建python环境

conda create -n xgboost-en

激活&退出环境

source/conda activate xgboost-env
source/conda deactivate

安装xgboost

  1. 首先安装libgcc: conda install libgcc

  2. 然后安装xgboost: pip install xgboost

xgboost demo

训练数据准备

xgboost支持libsvm格式,使得训练加速,当然也支持numpy格式数据等,这里使用libsvm格式数据,采用数据集可以从这里
获取
在这里插入图片描述

训练

import xgboost as xgb
from sklearn.metrics import roc_auc_score

dtest = xgb.DMatrix('test.data')
dtrain = xgb.DMatrix('train.data')

param = {
   
    'max_depth': 5,
    'eta': 0.08,
    'silent': 0,
    'objective': 'binary:logistic',
    'gamma': 0.2,
    'subsample': 0.8,
    'colsample_bytree': 0.8,
    'eval_metric': 'auc',
    'nthread': 16
}

watchlist = [(dtest, 'eval'), (dtrain, 'train')]
num_round = 100

bst = xgb.train(param, dtrain, num_round, watchlist)
bst.save_model('xgboost_demo.model')

# evaluate.
y_test = dtest.get_label()
y_pred = bst.predict(dtest)
auc = roc_auc_score(y_test, y_pred)
print (auc)

预测

import xgboost as xgb
from sklearn.metrics import roc_auc_score

xgbmodel = xgb.load('xgboost_demo.model')
dtest = xgb.DMatrix('test.data')
y_pred = bst.predict(dtest)

spark版xgboost环境&Demo

XGBoost4J-Spark这个项目通过使XGBoost适应Apache Spark的MLLIB框架,无缝集成XGBoost和Apache Spark。通过集成,用户不仅可以使用XGBoost的高性能算法实现,还可以利用Spark强大的数据处理引擎实现以下功能:

  • 特征工程:特征提取,变换,降维和选择等.

  • 管道:构造,评估和调整ML管道

  • 持久性:持久性并加载机器学习模型甚至整个管道

依赖

XGBoost4J-Spark在0.72版本需要Apache Spark 2.3+,否则会出现各种异常情况,引入以下依赖:

<!--xgboost-->
<dependency>
  <groupId>ml.dmlc</groupId>
  <artifactId>xgboost4j</artifactId>
  <version>0.72</version>
</dependency>
<dependency>
  <groupId>ml.dmlc</groupId>
  <artifactId>xgboost4j-spark</artifactId>
  <version>0.72</version>
</dependency>

准备libsvm格式训练数据

libSVM是台湾林智仁(Chih-Jen Lin)教授2001年开发的一套支持向量机的库,这套库运算速度还是挺快的&#x

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值