xgboost的使用简析

前言——记得在阿里实习的时候,大家都是用mllib下的GBDT来train model的。但由于mllib不是开源的,所以在公司外是不能够使用。后来参加kaggle比赛的时候,认识到一个GDBT好用的工具,xgboost,所以就认真地学习了一下。


github地址:https://github.com/dmlc/xgboost

具体使用方式,其实里面都有说明的,下面主要讲讲在windows下python环境怎样使用xgboost。


1、按照官方说明来下载并编译release版64位程序,并执行“python setup.py install”。

2、在python代码中添加环境路径“sys.path.append('C:\\.........\\xgboost-master\\wrapper')”(注:该路径为你下载解压出来的文件夹wrapper路径)

3、这样就可以尝试“import xgboost as xgb”了,如果成功就没问题了。(注:要依赖numpy以及scipy,且安装位数要跟你Python位数一致,64位版numpy以及scipy要到这里下载,32位版就可以到官网下载)


下面贴个train的代码以及predict的代码:

train:

#!/usr/bin/python
import sys,os
sys.path.append('C:\\xgboost-master\\wrapper')

import numpy as np
import scipy.sparse
import xgboost as xgb

### simple example
# load file from text file, also binary buffer generated by xgboost
dtrain = xgb.DMatrix('C:\\PredictAHE_Trainset_libsvmFormat.txt')
dtest = xgb.DMatrix('C:\\PredictAHE_Testset_libsvmFormat.txt')


# specify parameters via map, definition are same as c++ version
param = {'max_depth':6, 'eta':0.3, 'silent':1, 'objective':'binary:logistic' }

# specify validations set to watch performance
watchlist  = [(dtest,'eval'), (dtrain,'train')]
num_round = 20
bst = xgb.train(param, dtrain, num_round, watchlist)

# this is prediction
preds = bst.predict(dtest)
labels = dtest.get_label()
print ('error=%f' % (  sum(1 for i in range(len(preds)) if int(preds[i]>0.5)!=labels[i]) /float(len(preds))))
bst.save_model('C:\\xgb.model')


predict:

#!/usr/bin/python
import sys,os
sys.path.append('C:\\xgboost-master\\wrapper')

import numpy as np
import scipy.sparse
import xgboost as xgb

### simple example
# load file from text file, also binary buffer generated by xgboost
dtest2 = xgb.DMatrix('C:\\PredictAHE_Temp_libsvmFormat.txt')

# load model and data in
bst2 = xgb.Booster(model_file='C:\\xgb.model')
preds2 = bst2.predict(dtest2)

# this is prediction
outing = open('C:\\PredictAHE_Temp_Result.txt', 'w')
outing.write(str(int(preds2[0]>0.5))) #只输出了一个
outing.close()

P.S.输入的文件格式要是 libsvm格式




你可能感兴趣的:(xgboost)