def regression_with_xgboost_no_cv(x_train, y_train, X_test, Y_test, features=None, xgb_params=None, num_rounds = 10):
train_data = xgb.DMatrix(x_train, label=y_train, missing=float('nan'))
test_data = xgb.DMatrix(X_test, Y_test, missing=float('nan'))
evallist = [(train_data,'train'), (test_data,'eval')]
if xgb_params is None:
xgb_params = get_default_xgboost_params()
print "xgb_params not found"
print "XGBoost, using param", xgb_params
gbdt = xgb.train(xgb_params, train_data, num_rounds, evallist, verbose_eval = True, early_stopping_rounds=5)
isgbtree = xgb_params["booster"] == "gbtree"
if isgbtree :
ceate_feature_map_for_feature_importance(features)
show_feature_importance(gbdt)
y_pred = gbdt.predict(xgb.DMatrix(X_test, missing=float('nan')), ntree_limit=gbdt.best_ntree_limit)
else:
y_pred = gbdt.predict(xgb.DMatrix(X_test, missing=float('nan')))
return XGBoostModel(gbdt), y_pred
评论列表
文章目录