`

xgboost 安装、绘图笔记

 
阅读更多
系统:ubuntu 16.04

当前文档很不错了:https://xgboost.readthedocs.io/en/latest/build.html

1、下载源码
一行命令搞定,下载的源码在当前文件夹下,会创建一个xgboost目录
git clone --recursive https://github.com/dmlc/xgboost



修改导出文件的精度
在src/tree/tree_model.cc中,修改如下方法,增加一行fo.precision(20);
std::string RegTree::Dump2Text(const FeatureMap& fmap, bool with_stats) const {
  std::stringstream fo(""); fo.precision(20);
  for (int i = 0; i < param.num_roots; ++i) {
    DumpRegTree2Text(fo, *this, fmap, i, 0, with_stats);
  }
  return fo.str();
}

2、编译so
cd xgboost; make -j4


3、安装python包
cd python-package; sudo python setup.py install



4、示例
先来看生成的决策树:


#修改自: https://xgboost.readthedocs.io/en/latest/get_started/index.html

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import xgboost as xgb
from sklearn.metrics import roc_auc_score

xgFolder='/home/XXX/tools/xgboost/'

# read in data
dtrain = xgb.DMatrix(xgFolder+'demo/data/agaricus.txt.train')
# 训练文件第一行内容为:1 3:1 10:1 11:1 21:1 30:1 34:1 36:1 40:1 41:1 53:1 58:1 65:1 69:1 77:1 86:1 88:1 92:1 95:1 102:1 105:1 117:1 124:1
# 第一个表示标签为1,  第3个特征为1, 第10个特征为1, 。。。

weights=dtrain.get_weight()# 权重矩阵,类型是numpy.ndarray,, 但是不是指的读入的数据,而是每个sample的权重,不设置就为[]
labels=dtrain.get_label()# 标签,类型是numpy.ndarray
print(dtrain.get_base_margin())
print(weights)
print(labels[0])
dtest = xgb.DMatrix(xgFolder+'demo/data/agaricus.txt.test')

# specify parameters via map
# 调参:https://xgboost.readthedocs.io/en/latest/how_to/param_tuning.html
# 参数详细介绍:https://xgboost.readthedocs.io/en/latest/parameter.html
booster='dart'
# booster='gbtree'
# booster='gblinear'

param = {'max_depth':3, 'eta':1, 'silent':0, 'objective':'binary:logistic','booster':booster }
num_round = 2

bst = xgb.train(param, dtrain, num_round)
# make prediction
preds = bst.predict(dtest)
print('AUC: %.4f'%  roc_auc_score(dtest.get_label(), preds))
print('DONE')

#######################################################
# https://xgboost.readthedocs.io/en/latest/python/python_intro.html
# 绘制特征的重要性和决策树:
import matplotlib.pyplot as plt
ax=xgb.plot_importance(bst)
plt.show()  #没有这句只有debug模式才会显示。。。

# ax=xgb.plot_tree(bst, num_trees=1)
ax=xgb.plot_tree(bst)
plt.show()


#存储决策树到图像
import codecs
f=codecs.open('xgb_tree.png', mode='wb')
g=xgb.to_graphviz(bst)
f.write(g.pipe('png'));
f.close()


输出(仅结果):
  • AUC: 1.0000
  • DONE


5、有用的资料
python API:http://xgboost.readthedocs.io/en/latest/python/index.html

调参:https://xgboost.readthedocs.io/en/latest/how_to/param_tuning.html
参数详细介绍:https://xgboost.readthedocs.io/en/latest/parameter.html

boosted trees 简介:https://xgboost.readthedocs.io/en/latest/tutorials/index.html

Awesome XGBoost:https://github.com/dmlc/xgboost/tree/master/demo


使用C、C++API:
http://stackoverflow.com/questions/36071672/using-xgboost-in-c
http://qsalg.com/?p=388
http://stackoverflow.duapp.com/questions/35289674/create-xgboost-dmatrix-in-c/37416279
  • 大小: 73.2 KB
分享到:
评论

相关推荐

    CAD机械制图笔记

    ### CAD机械制图笔记知识点梳理 #### 软件内容及常用工具介绍 在CAD(Computer-Aided Design)机械制图领域,掌握合适的软件工具是非常重要的。本篇笔记将详细介绍AUTOCAD 2007的基本操作与常用功能,帮助初学者...

    python机器学习 XGBoost算法 多变量输入

    在训练过程中,我们可以通过绘图来观察损失函数(loss)和准确率(accuracy)随迭代次数的变化,以评估模型的收敛情况。另外,将预测值与真实值进行对比的图表(如残差图或ROC曲线)可以帮助我们理解模型的预测性能...

    sketch矢量绘图学习笔记

    《sketch矢量绘图学习笔记》是一本由数字人digitalman老师撰写的关于Sketch软件使用的学习指南。Sketch是一款矢量绘图软件,特别受到UI/UX设计师们的青睐。由于用户群体的特殊性,它非常适合用于设计矢量图形、UI...

    二维绘图笔记.html

    二维绘图笔记.html

    python海龟绘图笔记.docx

    Python 海龟绘图笔记 Python 的 Turtle 库是一种流行的绘制图像的标准库函数库。它提供了一个简单的绘图接口,允许用户使用 Python 语言创建图形和动画。下面是 Turtle 库的详细介绍和使用方法。 Turtle 库介绍 ...

    Windows GDI+绘图学习笔记相关文章的源码

    【学习笔记】Windows GDI绘图(一)图形概述、直线、曲线和图形 【学习笔记】Windows GDI绘图(二)图像Images,位图Bitmaps和图元文件Metafiles 【学习笔记】Windows GDI绘图(三)坐标系和坐标转换 【学习笔记】Windows ...

    matlab绘图基础知识学习笔记

    matlab学习笔记之matlab绘图基础,数值计算与matlab语言的基础知识。

    MATLAB绘图初步笔记

    MATLAB绘图初步笔记

    onenote笔记.zip

    标题 "onenote笔记.zip" 暗示了这是一个包含Microsoft OneNote笔记的压缩文件,而描述 "我的onenote笔记" 表明这是个人创建或收集的一系列笔记。OneNote是微软出品的一款强大的数字笔记本应用,它允许用户组织、编辑...

    计算机制图笔记

    英文文献翻译,讲述瑞士区域应用航带网法空中三角测量的具体事件,方法,技术等等

    PCB设计笔记---ADI,pcb设计笔记本电脑推荐

    本笔记主要由ADI(Analog Devices, Inc.)提供,聚焦于PCB布局和走线策略,对于设计高质量的PCB具有很高的指导价值。下面我们将深入探讨笔记中的关键知识点。 首先,PCB布局是指将电路板上的各种元件按照一定的规则...

    XGBoost——机器学习(理论+图解+安装方法+python代码)

    文章目录一瞥一、集成算法思想二、XGBoost基本思想三、MacOS安装XGBoost四、用python实现XGBoost算法五、xgboost的优化:六、xgboost的优势:1、正则化2、并行处理3、高度的灵活性4、缺失值处理5、剪枝6、内置交叉...

    MATLAB初级绘图学习笔记MATLAB文件

    MATLAB初级绘图学习笔记MATLAB文件

    死亡笔记字体

    这些工具提供了丰富的绘图工具和调整选项,帮助实现个性化的设计。 3. **字形构造**:每个字母、数字和标点符号都需要精心设计,确保在保持可读性的同时,能够体现死亡笔记的特征。比如,“L”可能设计成类似死神...

    Auto CAD 笔记 辅助你更好的学习CAD制图

    这份“Auto CAD 笔记”旨在为学习者提供一个全面而深入的学习资源,辅助你更好地掌握CAD制图技能。 1. **基础操作与界面** - **启动与设置**:了解如何启动Auto CAD,熟悉工作界面布局,包括菜单栏、工具栏、...

    Tikz学习笔记(高清带书签)

    Latex中最常用的绘图宏包tikz的学习笔记,国内关于tikz的中文学习资料很少,这份文档尽善尽美,640多页详细介绍了tikz的坐标系和各种扩展程序库,是入门tikz不可多得的中文手册。

    h5前端学习笔记

    6. **canvas讲义.md**:Canvas是HTML5中的绘图元素,这个文件可能详细介绍了如何用JavaScript进行图形绘制,包括基本操作、图像处理、动画制作等。 7. **面向对象补充.md**:JavaScript支持面向对象编程,此文件...

    autoCAD2016基础篇学习笔记

    笔记涵盖了 AutoCAD 2016 软件的各个方面,包括界面布局、操作步骤、视图操作、绘图工具、物体选择方式等。 一、 CAD 的由来 CAD(Computer-Aided Design)是计算机辅助设计的缩写,自 20 世纪 60 年代以来,CAD ...

    PGFTikZ绘图学习笔记.pdf

    PGF/TikZ 绘图学习笔记 PGF/TikZ 是一个功能强大且灵活的绘图工具,广泛应用于 LaTeX 文档中。在本文档中,我们将学习使用 PGF/TikZ 绘制图形的基础知识。 1. 坐标表示 在 TikZ 中,坐标的默认长度单位为厘米(cm...

    AVR单片机自学笔记

    本书不但讲述了AVR单片机的常用知识,还重点讲述了Bootl.oader及嵌入式操作系统AVRX的使用方法,更为重要的是书中还包括单色图形液晶屏绘图函数库的应用,同时将许多实际应用中的设计内容及调试经验融人到本书。...

Global site tag (gtag.js) - Google Analytics