利用xgboost进行逻辑回归预测,基于xgb的原生接口

废话不多说,直接上代码

train = pd.read_csv('train_xy.csv')
traint, testst = train_test_split(train, test_size=0.4, random_state=1)#分割数据集
params = {
    'booster': 'gbtree',
    'objective': 'binary:logistic',
    'eval_metric': 'auc',
    'gamma': 0,
    'max_depth': depth,  # 4
    'lambda': 2,
    'subsample': 0.7,
    'colsample_bytree': 0.7,
    'min_child_weight': weight,  # 6
    'silent': 1,
    'eta': 0.007,
    'seed': 1000,  # 22很高
    'nthread': 4,
}
plst = list(params.items())
num_rounds = rounds  # 迭代次数 1000
target = testst.y
del testst['y']
y = traint.y
X = traint.drop(['y'], axis=1)
xgb_train = xgb.DMatrix(X, label=y)
xgb_test = xgb.DMatrix(testst)
model = xgb.train(plst, xgb_train, num_rounds)  # , watchlist)# ,early_stopping_rounds=100)
model.save_model('xgb.model')  # 用于存储训练出的模型
preds = model.predict(xgb_test, ntree_limit=model.best_ntree_limit)
preds1 = model.predict(xgb_test1, ntree_limit=model.best_ntree_limit)
preds1 = np.round(preds1, 6)
preds = pd.Series(preds)
test_auc = metrics.roc_auc_score(target, preds)
print(test_auc)
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值