python环境下xgboost的安装与使用

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

本文就主要介绍一下xgboost在python环境中的安装与使用。

首先安装XGBoost的C++版本,然后进入源文件的根目录下的 wrappers文件夹执行如下脚本安装Python模块

python setup.py install

下载网址: https://github.com/dmlc/xgboost,(windows环境下安装需要先进行编译)

使用方法:

1.数据导入

数据格式样例

导入方法为:

        dtrain = xgb.DMatrix(‘train.txt‘)
        dtest = xgb.DMatrix(‘test.txt‘)

2.参数设置

1         param = {‘booster‘:‘gbtree‘,‘max_depth‘:10, ‘eta‘:0.3, ‘silent‘:1, ‘num_class‘:2,‘objective‘:‘multi:softprob‘ }
2         watchlist  = [(dtest,‘test‘), (dtrain,‘train‘)]

设置参数并调整,设置验证数据集

参数解释:

Parameter for Tree Booster

  • eta [default=0.3]

    • 为了防止过拟合,更新过程中用到的收缩步长。在每次提升计算之后,算法会直接获得新特征的权重。 eta通过缩减特征的权重使提升计算过程更加保守。缺省值为0.3
    • 取值范围为:[0,1]
  • gamma [default=0] 
    • minimum loss reduction required to make a further partition on a leaf node of the tree. the larger, the more conservative the algorithm will be.
    • range: [0,∞]
  • max_depth [default=6] 
    • 数的最大深度。缺省值为6
    • 取值范围为:[1,∞]
  • min_child_weight [default=1] 
    • 孩子节点中最小的样本权重和。如果一个叶子节点的样本权重和小于min_child_weight则拆分过程结束。在现行回归模型中,这个参数是指建立每个模型所需要的最小样本数。该成熟越大算法越conservative
    • 取值范围为: [0,∞]
  • max_delta_step [default=0] 
    • Maximum delta step we allow each tree’s weight estimation to be. If the value is set to 0, it means there is no constraint. If it is set to a positive value, it can help making the update step more conservative. Usually this parameter is not needed, but it might help in logistic regression when class is extremely imbalanced. Set it to value of 1-10 might help control the update
    • 取值范围为:[0,∞]
  • subsample [default=1] 
    • 用于训练模型的子样本占整个样本集合的比例。如果设置为0.5则意味着XGBoost将随机的冲整个样本集合中随机的抽取出50%的子样本建立树模型,这能够防止过拟合。
    • 取值范围为:(0,1]
  • colsample_bytree [default=1] 
    • 在建立树时对特征采样的比例。缺省值为1
    • 取值范围:(0,1]

Parameter for Linear Booster

  • lambda [default=0]

    • L2 正则的惩罚系数
  • alpha [default=0] 
    • L1 正则的惩罚系数
  • lambda_bias 
    • 在偏置上的L2正则。缺省值为0(在L1上没有偏置项的正则,因为L1时偏置不重要)

Task Parameters

  • objective [ default=reg:linear ]

    • 定义学习任务及相应的学习目标,可选的目标函数如下:
    • “reg:linear” –线性回归。
    • “reg:logistic” –逻辑回归。
    • “binary:logistic” –二分类的逻辑回归问题,输出为概率。
    • “binary:logitraw” –二分类的逻辑回归问题,输出的结果为wTx。
    • “count:poisson” –计数问题的poisson回归,输出结果为poisson分布。
    • 在poisson回归中,max_delta_step的缺省值为0.7。(used to safeguard optimization)
    • “multi:softmax” –让XGBoost采用softmax目标函数处理多分类问题,同时需要设置参数num_class(类别个数)
    • “multi:softprob” –和softmax一样,但是输出的是ndata * nclass的向量,可以将该向量reshape成ndata行nclass列的矩阵。没行数据表示样本所属于每个类别的概率。
    • “rank:pairwise” –set XGBoost to do ranking task by minimizing the pairwise loss
  • base_score [ default=0.5 ] 
    • the initial prediction score of all instances, global bias
  • eval_metric [ default according to objective ] 
    • 校验数据所需要的评价指标,不同的目标函数将会有缺省的评价指标(rmse for regression, and error for classification, mean average precision for ranking)
    • 用户可以添加多种评价指标,对于Python用户要以list传递参数对给程序,而不是map参数list参数不会覆盖’eval_metric’
    • The choices are listed below:
    • “rmse”: root mean square error
    • “logloss”: negative log-likelihood
    • “error”: Binary classification error rate. It is calculated as #(wrong cases)/#(all cases). For the predictions, the evaluation will regard the instances with prediction value larger than 0.5 as positive instances, and the others as negative instances.
    • “merror”: Multiclass classification error rate. It is calculated as #(wrong cases)/#(all cases).
    • “mlogloss”: Multiclass logloss
    • “auc”: Area under the curve for ranking evaluation.
    • “ndcg”:Normalized Discounted Cumulative Gain
    • “map”:Mean average precision
    • “[email protected]”,”[email protected]”: n can be assigned as an integer to cut off the top positions in the lists for evaluation.
    • “ndcg-“,”map-“,”[email protected]“,”[email protected]“: In XGBoost, NDCG and MAP will evaluate the score of a list without any positive samples as 1. By adding “-” in the evaluation metric XGBoost will evaluate these score as 0 to be consistent under some conditions. 
      training repeatively
  • seed [ default=0 ] 
    • 随机数的种子。缺省值为0

Console Parameters

The following parameters are only used in the console version of xgboost 
* use_buffer [ default=1 ] 
- 是否为输入创建二进制的缓存文件,缓存文件可以加速计算。缺省值为1 
* num_round 
- boosting迭代计算次数。 
* data 
- 输入数据的路径 
* test:data 
- 测试数据的路径 
* save_period [default=0] 
- 表示保存第i*save_period次迭代的模型。例如save_period=10表示每隔10迭代计算XGBoost将会保存中间结果,设置为0表示每次计算的模型都要保持。 
* task [default=train] options: train, pred, eval, dump 
- train:训练明显 
- pred:对测试数据进行预测 
- eval:通过eval[name]=filenam定义评价指标 
- dump:将学习模型保存成文本格式 
* model_in [default=NULL] 
- 指向模型的路径在test, eval, dump都会用到,如果在training中定义XGBoost将会接着输入模型继续训练 
* model_out [default=NULL] 
- 训练完成后模型的保持路径,如果没有定义则会输出类似0003.model这样的结果,0003是第三次训练的模型结果。 
* model_dir [default=models] 
- 输出模型所保存的路径。 
* fmap 
- feature map, used for dump model 
* name_dump [default=dump.txt] 
- name of model dump file 
* name_pred [default=pred.txt] 
- 预测结果文件 
* pred_margin [default=0] 
- 输出预测的边界,而不是转换后的概率

3.模型训练

1         bst = xgb.train(param, dtrain, num_round, watchlist)
2         precision = bst.predict(dtest)

训练模型并预测

1         print(metrics.accuracy_score(labels,preds))
2         print(metrics.precision_score(labels, preds))
3         print(metrics.recall_score(labels, preds))

输出指标

4.模型保存与加载

保存模型

bst.save_model(‘0001.model‘)

加载模型

1 bst.load_model("00001.model") # load data
时间: 2024-11-10 11:05:58

python环境下xgboost的安装与使用的相关文章

python MySQLdb在windows环境下的快速安装

python MySQLdb在windows环境下的快速安装.问题解决方式 使用python访问mysql,需要一系列安装 linux下MySQLdb安装见 Python MySQLdb在Linux下的快速安装 http://blog.csdn.net/wklken/article/details/7271019 ------------------------------------------------------------- 以下是windows环境下的: 1.      安装数据库m

Python: Windows下pip的安装及简单应用

pip是一个用来管理和下载Python包的软件.通过pip,可以很容易就联网下载并安装需要的Python包到正确的位置,是一个很有用的软件. 由于自学的Python,刚开始需要下载第三方包的时候,总是被各种格式搞得头大.询问别人,别人就告诉个pip的命令,都说用这个就很方便就可以下载安装的.当时完全不知所云啊,因为看的Python入门那本书里压根没提过pip这个玩意.于是就百度了一下,终于知道了pip的基本用法. 写下此文,一方面是自己做个整理笔记,以备以后查看.另一方面,也希望有的初学Pyth

python环境下实现OrangePi Zero寄存器访问及GPIO控制

最近入手OrangePi Zero一块,程序上需要使用板子上自带的LED灯,在网上一查,不得不说OPi的支持跟树莓派无法相比.自己摸索了一下,实现简单的GPIO控制方法,作者的Zero安装的是Armbian系统,使用python写了一个读写寄存器的简单模块,通过这个模块,即可实现对GPIO的控制. 作者以前使用过STM32的MCU,这类MCU,如果要实现对GPIO的控制,只需要根据datasheet查找相应GPIO寄存器并进行配置,即可实现IO控制,例如,要将内存地址为0x12345678的寄存

Windows环境下 PyQt5 如何安装MySql驱动 (PyQt5连接MYSQL时显示Driver not loaded解决方案)

参考文章: https://blog.csdn.net/qq_38198744/article/details/80261695 前文说过如何在Ubuntu环境下 为PyQt5  安装MySql驱动, 这里面主要说的是如何在Windows环境下安装MySql驱动. # -*- coding: utf-8 -*- ''' [简介] PyQt5中 处理database 例子 ''' import sys from PyQt5.QtCore import * from PyQt5.QtGui impo

图像处理基本工具——Python 环境下的 Pillow( PIL )

由于笔者近期的研究课题与图像后处理有关,需要通过图像处理工具对图像进行变换和处理,进而生成合适的训练图像数据.该系列文章即主要记录笔者在不同的环境下进行图像处理时常用的工具和库.在 Python 环境下,对图像的处理笔者主要使用 Pillow 库,主要操作包括对图像的读取.存储和变换等.实际应用中,Pillow 中提供的 Image 模块适合对图像整体进行变换处理操作. 注:以下介绍仅包括对应模块和函数的基础用法,故而在介绍时省略了部分参数和选项,更完备的用法和介绍可参考 Pillow 的官方文

Ubuntu环境下SSH的安装及使用

Ubuntu环境下SSH的安装及使用 SSH是指Secure Shell,是一种安全的传输协议,Ubuntu客户端可以通过SSH访问远程服务器 .SSH的简介和工作机制可参看上篇文章SSH简介及工作机制. SSH分客户端openssh-client和openssh-server 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudoapt-get install openssh-client),如果要使本机开放SSH服务就需要安装ope

Windows环境下MongoDB的安装与配置

MongoDB是一种高性能的文档型数据库,现介绍一下在Windows环境下MongDB的安装与配置 获取MongoDB 打开官方网站 www.mongodb.org,找到页面右上解的DownLoad链接 点击DOWNLOAD下载  目前最新的版本是3.2.4,下载好后选择安装目录,这里选择d:\mongo3.2 配置MongoDB 在目录 d:\mongo3.2下新建一个mongo.config文件,这个文件是用来对MONGODB进行配置用的, 在d:\mongo3.2\bin下新建一个目录db

ubuntu环境下eclipse的安装以及hadoop插件的配置

ubuntu环境下eclipse的安装以及hadoop插件的配置 一.eclipse的安装 在ubuntu桌面模式下,点击任务栏中的ubuntu软件中心,在搜索栏搜索eclipse 注意:安装过程需要输入用户密码. 二.eclipse的配置 待eclipse安装好以后,在命令行输入whereis eclipse 找到eclipse的安装路径 在文件目录下找到eclipse中的插件目录 然后在打开一个文件目录窗口找到hadoop/contrib/eclipse-plugin中的eclipse插件—

window环境下glog的安装

window环境下glog的安装 分类: c++2014-09-23 14:12 32人阅读 评论(0) 收藏 举报 下载后解压,利用Visual Studio打开google-glog.sln.生成解决方案 安装: 方法一:将libglog.dll和libglog.lib文件,拷贝文件到你的工程文件夹下,并拷贝src\windows\下的glog目录到你的工程文件下. 方法二:你也可以将这两个文件拷贝到系统文件夹下,实现全局访问. 1. 将libglog.dll拷贝到C:\Program Fi