如何在python环境下安装xgboost
来源:互联网 发布:软件开发流程 ppt 编辑:程序博客网 时间:2024/06/05 18:09
下面将介绍XGBoost的python模块
编译及导入python模块
数据接口a参数置
训练模型
提前终止程序
预测
安装
首先安装xgboost的c++版本,然后进入原文件的根目录下的wrapper文件夹执行如下脚本安装python模块
python setup.py install
安装完成后按照如下方式导入xgboost的python模块
import xgboost as xgb
数据接口
xgboost可以加载libsvm格式的文本数据,加载的数据格式可以为NumPy的二维数组和xgboost的二进制缓存文件。加载的存储点在对象DMatrix中。
加载libsvm格式的数据和二进制的缓存文件时候可以使用如下方式
drain=xgb.Dmatrix('train.svm.txt') dtest=xgb.DMatrix('test.svm.buffer')
加载numpy的数组到Dmatrix对象时,可以用如下方式
data=np.random.rand(5,10) #5 entities,each contains 10 feature label =np.random.randint(2,size=5)#binary target dtrain=xgb.DMatrix(data,label=label)
将scipy.sparse格式的数据转化为DMatrix格式时,可以使用如下方式
csr=scipy.sparse.csr_matrix((dat,(row,col)),) drain =xgb.DMatrix(csr)
将DMatrix格式的数据保存为xgboost的二进制格式,在下次加载的时候可以提高加载速度,使用方式如下
drain =xgb.DMatrix('train.svm.txt') drain.save_binary("train.buffer")
可以用如下方式处理DMatrix中的缺失值
dtrain =xgb.DMtrix(data,label=label,missing =-999.0)
当需要给样本设置权重时,可以采用如下方式
w=np.random.rand(5,1) dtrain=xgb.DMtrix(data,label=label,missing=-999.0,weight =w)
参数设置
XGBoost使用key-value格式保存参数. Eg
* Booster(基本学习器)参数
param = {'bst:max_depth':2, 'bst:eta':1, 'silent':1, 'objective':'binary:logistic' } param['nthread'] = 4 plst = param.items() plst += [('eval_metric', 'auc')] # Multiple evals can be handled in this way plst += [('eval_metric', 'ams@0')]
还可以定义验证数据集,验证算法的性能
evallist = [(dtest,'eval'), (dtrain,'train')]
训练模型
有了参数列表和数据就可以训练模型了
* 训练
num_round = 10 bst = xgb.train( plst, dtrain, num_round, evallist )
- 保存模型
- 在训练完成之后可以将模型保存下来,也可以查看模型内部的结构
bst.save_model('0001.model')
- Dump Model and Feature Map
- You can dump the model to txt and review the meaning of model
# dump model bst.dump_model('dump.raw.txt') # dump model with feature map bst.dump_model('dump.raw.txt','featmap.txt')
- 加载模型
- 通过如下方式可以加载模型
bst = xgb.Booster({'nthread':4}) #init model bst.load_model("model.bin") # load data
提前终止程序
如果有评价数据,可以提前终止程序,这样可以找到最优的迭代次数。如果要提前终止程序必须至少有一个评价数据在参数evals中。 If there’s more than one, it will use the last.
train(..., evals=evals, early_stopping_rounds=10)
The model will train until the validation score stops improving. Validation error needs to decrease at least every early_stopping_rounds to continue training.
If early stopping occurs, the model will have two additional fields: bst.best_score and bst.best_iteration. Note that train() will return a model from the last iteration, not the best one.
This works with both metrics to minimize (RMSE, log loss, etc.) and to maximize (MAP, NDCG, AUC).
=
Prediction
After you training/loading a model and preparing the data, you can start to do prediction.
data = np.random.rand(7,10) # 7 entities, each contains 10 features dtest = xgb.DMatrix( data, missing = -999.0 ) ypred = bst.predict( xgmat )
If early stopping is enabled during training, you can predict with the best iteration.
ypred = bst.predict(xgmat,ntree_limit=bst.best_iteration)
- 如何在python环境下安装xgboost
- 如何在python下安装xgboost
- 如何在python下安装xgboost
- 如何在python下安装xgboost
- python环境下Xgboost的安装过程
- windows7环境下Python中安装XGBoost
- xgboost 在window7环境下安装
- 在windows 10环境下安装xgboost
- Python下如何安装导入xgboost
- xgboost python 在windows下安装
- python 在linux环境下如何安装
- 如何在windows系统Python上安装xgboost ?
- 在Window平台下安装xgboost的Python版本
- 在win10下安装xgboost, python 为3.5
- Python下安装配置xgboost
- windows下python安装xgboost
- centos7下xgboost,python安装
- xgboost在Python的安装
- java spring
- 最长公共子序列&&最长公共子串---[动态规划]
- 安卓自定义Scrollview,实现卷帘成效
- [bzoj1015][JSOI2008]星球大战starwar
- mysql 5.7源码 启动监听过程
- 如何在python环境下安装xgboost
- Java集合框架图解
- LINUX C++ 线程池简单实现之双队列
- 太阳的后裔--OST.3 This love这份爱
- AJAX的数据类型
- 你的电脑上的应用需要使用以下windows功能(安装.net3.5)解决办法
- 终于开通博客了,第一篇博客记录我的pat之旅!!!1006。换个格式输出整数,灰常简单。。
- java练习——用循环输出等腰三角形
- STM32F0xx_TIM输出PWM配置详细过程