系统: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()
输出(仅结果):
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(Computer-Aided Design)机械制图领域,掌握合适的软件工具是非常重要的。本篇笔记将详细介绍AUTOCAD 2007的基本操作与常用功能,帮助初学者...
在训练过程中,我们可以通过绘图来观察损失函数(loss)和准确率(accuracy)随迭代次数的变化,以评估模型的收敛情况。另外,将预测值与真实值进行对比的图表(如残差图或ROC曲线)可以帮助我们理解模型的预测性能...
《sketch矢量绘图学习笔记》是一本由数字人digitalman老师撰写的关于Sketch软件使用的学习指南。Sketch是一款矢量绘图软件,特别受到UI/UX设计师们的青睐。由于用户群体的特殊性,它非常适合用于设计矢量图形、UI...
二维绘图笔记.html
Python 海龟绘图笔记 Python 的 Turtle 库是一种流行的绘制图像的标准库函数库。它提供了一个简单的绘图接口,允许用户使用 Python 语言创建图形和动画。下面是 Turtle 库的详细介绍和使用方法。 Turtle 库介绍 ...
【学习笔记】Windows GDI绘图(一)图形概述、直线、曲线和图形 【学习笔记】Windows GDI绘图(二)图像Images,位图Bitmaps和图元文件Metafiles 【学习笔记】Windows GDI绘图(三)坐标系和坐标转换 【学习笔记】Windows ...
matlab学习笔记之matlab绘图基础,数值计算与matlab语言的基础知识。
MATLAB绘图初步笔记
标题 "onenote笔记.zip" 暗示了这是一个包含Microsoft OneNote笔记的压缩文件,而描述 "我的onenote笔记" 表明这是个人创建或收集的一系列笔记。OneNote是微软出品的一款强大的数字笔记本应用,它允许用户组织、编辑...
英文文献翻译,讲述瑞士区域应用航带网法空中三角测量的具体事件,方法,技术等等
本笔记主要由ADI(Analog Devices, Inc.)提供,聚焦于PCB布局和走线策略,对于设计高质量的PCB具有很高的指导价值。下面我们将深入探讨笔记中的关键知识点。 首先,PCB布局是指将电路板上的各种元件按照一定的规则...
文章目录一瞥一、集成算法思想二、XGBoost基本思想三、MacOS安装XGBoost四、用python实现XGBoost算法五、xgboost的优化:六、xgboost的优势:1、正则化2、并行处理3、高度的灵活性4、缺失值处理5、剪枝6、内置交叉...
MATLAB初级绘图学习笔记MATLAB文件
这些工具提供了丰富的绘图工具和调整选项,帮助实现个性化的设计。 3. **字形构造**:每个字母、数字和标点符号都需要精心设计,确保在保持可读性的同时,能够体现死亡笔记的特征。比如,“L”可能设计成类似死神...
这份“Auto CAD 笔记”旨在为学习者提供一个全面而深入的学习资源,辅助你更好地掌握CAD制图技能。 1. **基础操作与界面** - **启动与设置**:了解如何启动Auto CAD,熟悉工作界面布局,包括菜单栏、工具栏、...
Latex中最常用的绘图宏包tikz的学习笔记,国内关于tikz的中文学习资料很少,这份文档尽善尽美,640多页详细介绍了tikz的坐标系和各种扩展程序库,是入门tikz不可多得的中文手册。
6. **canvas讲义.md**:Canvas是HTML5中的绘图元素,这个文件可能详细介绍了如何用JavaScript进行图形绘制,包括基本操作、图像处理、动画制作等。 7. **面向对象补充.md**:JavaScript支持面向对象编程,此文件...
笔记涵盖了 AutoCAD 2016 软件的各个方面,包括界面布局、操作步骤、视图操作、绘图工具、物体选择方式等。 一、 CAD 的由来 CAD(Computer-Aided Design)是计算机辅助设计的缩写,自 20 世纪 60 年代以来,CAD ...
PGF/TikZ 绘图学习笔记 PGF/TikZ 是一个功能强大且灵活的绘图工具,广泛应用于 LaTeX 文档中。在本文档中,我们将学习使用 PGF/TikZ 绘制图形的基础知识。 1. 坐标表示 在 TikZ 中,坐标的默认长度单位为厘米(cm...
本书不但讲述了AVR单片机的常用知识,还重点讲述了Bootl.oader及嵌入式操作系统AVRX的使用方法,更为重要的是书中还包括单色图形液晶屏绘图函数库的应用,同时将许多实际应用中的设计内容及调试经验融人到本书。...