【发布时间】:2021-08-13 14:43:30
【问题描述】:
在谷歌搜索了一段时间后,我觉得这可能是一个荒谬的问题,但就是这样。如果我使用以下代码,我可以生成一个 xgb 回归模型,然后我可以使用它来拟合训练集并评估模型
xgb_reg = xgb.XGBRegressor(objective='binary:logistic',
gamme = .12,
eval_metric = 'logloss',
#eval_metric = 'auc',
eta = .068,
subsample = .78,
colsample_bytree = .76,
min_child_weight = 9,
max_delta_step = 5,
nthread = 4)
start = time.time()
xgb_reg.fit(X_train, y_train)
print(start-time.time())
y_pred = xgb_reg.predict(X_test)
print(log_loss(y_test, y_pred))
现在,我想更进一步,使用 kfold cv 来改进模型,所以我有了这个
data_dmatrix = xgb.DMatrix(data=X_train,label=y_train)
params = {'objective':'binary:logistic','eval_metric':'logloss','eta':.068,
'subsample':.78,'colsample_bytree':.76,'min_child_weight':9,
'max_delta_step':5,'nthread':4}
xgb_cv = cv(dtrain=data_dmatrix, params=params, nfold=5, num_boost_round=20, metrics = 'logloss',seed=42)
但是,这会吐出一个数据框,我不能在测试集上使用 .predict()。
我想我可能不理解这个的基本概念,但我希望我只是忽略了一些简单的东西。
【问题讨论】:
标签: python scikit-learn xgboost