Xgboost使用方法详解一

'''内置建模方式
1.xgb.train训练方式
2.DMatrix数据形态,不是DataFrame
'''
import numpy as np
import scipy.sparse
import pickle
import xgboost as xgb

dtrain = xgb.DMatrix('data/agaricus.txt.train')
dtest = xgb.DMatrix('data/agaricus.txt.test')

#超参数设定
'''
max_depth:用于设置树的最大深度,默认为6,范围为:》1
eta:可以看作为学习率
为了防止过拟合,更新过程中用到的收缩步长,
再每次提升计算之后算法会直接获得新特征的权重。eta通过缩减特征的权重使提升计算过程更加保守。缺省值为0.3
取值范围为:[0,1]
silent:0表示输出信息, 1表示安静模式
objective:这个参数定义需要被最小化的损失函数。
binary:logistic:二分类的逻辑回归,返回预测的概率
'''
param = {'max_depth':2,'eta':1,'silent':1,'objective':'binary:logistic'}

#设定watchlist用于查看模型状态
watchlist = [(dtest,'eval'),(dtrain,'train')]
num_round = 2
bst = xgb.train(param,dtrain,num_round,watchlist)

#使用模型预测
preds = bst.predict(dtest)

#判断准确率
labels = dtest.get_label()
print("错误率为%f" % \
      (sum(1 for i in range(len(preds)) if int(preds[i]>0.5)!=labels[i])/float(len(preds))))

#模型存储
bst.save_model('data/0001.model')

你可能感兴趣的:(机器学习,Xgboost)